MySQL エラー: 接続数が多すぎる場合の解決策

MySQL エラー: 接続数が多すぎる場合の解決策

MySQLデータベースの接続が多すぎます

このエラーは明らかに、mysql_connect の後に mysql_close を呼び出すのを忘れた場合に発生します。

接続数が多すぎると、「接続数が多すぎる」というエラーが発生します。MySQL のデフォルトの接続数は 100 です。どのような状況でこのエラーが発生しますか?

通常の mysql_connect の後、mysql_close() を呼び出して接続を閉じます。

ただし、接続エラーが発生した場合、または mysql_real_query() がエラーで終了した場合は、mysql_close() の呼び出しを忘れる可能性があります。

したがって、プログラムが戻る前に、close() を実行するかどうかを判断する必要があります。最も安全な方法は、関数を記述するときに exit を 1 つだけ用意することです。

MySQL 構成ファイルを変更することで、許可される接続数を増やすこともできます。

サーバーで次のようなエラーが頻繁に発生することがあります:

エラーメッセージは次のとおりです。

MySQLサーバーに接続できません

エラー: 接続が多すぎます

エラー番号: 1040

以前にも同様のエラーレポートが管理者に送信されています。

公式ドキュメントによると、Linux にコンパイルされインストールされた MySQL のデフォルトの接続数は 100 であることがわかります。

ドキュメント: http://dev.mysql.com/doc/refman/5.0/en/too-many-connections.html

MySQL では公式に max_connections の値を変更する必要があると言われていますが、どのように変更すればよいのでしょうか? 2つの方法があります

1. 設定ファイルを変更する

/etc/my.cnf ファイルを変更し、[mysqld] に max_connections=N を追加します。このファイルがない場合は、コンパイルされたソース コードの support-files フォルダーから必要な *.cnf ファイルを /etc/my.cnf にコピーします。私は中規模サーバー構成の my-medium.cnf を使用しています。例えば、私の[mysqld]の内容は次のようになります

[mysqld]

ポート = 3306

ソケット = /tmp/mysql.sock

スキップロック

キーバッファ = 160M

最大許容パケット = 1M

テーブルキャッシュ = 64

ソートバッファサイズ = 512K

ネットバッファ長 = 8K

読み取りバッファサイズ = 256K

読み取りバッファサイズ = 512K

myisam_sort_buffer_size = 8M

最大接続数=1000

MySQLにあまり詳しくないので、多くのパラメータは変更されていません。ハハハ。 。

2. mysqld スクリプトを使用して自動的に起動しないユーザー。

MYSQLHOME/bin/mysqldsafe ファイルを変更します。たとえば、このファイル /usr/local/mysql/bin/mysqldsafe で grep −n'maxconnection' を実行します。

MYSQLHOME/bin/mysqldsafe ファイル 例: /usr/local/mysql/bin/mysqldsafe このファイル grep −n'maxconnection′MYSQL_HOME/bin/mysqld_safe

対応する行番号のmax_connectionsパラメータ値を変更します。

3. サーバーログインmysql: mysql -u root -p

90% の確率で、入ることができません。入ることができない場合は、再起動コマンドを実行します: /etc/init.d/mysql restart (centos システム)

この時点で、mysql に接続するために、mysql を再起動します。まだ時間がある場合は、次の手順に進むことができます。

設定ファイルを開き、次の設定を追加します: vi /etc/my.cnf

待機タイムアウト = 600

インタラクティブタイムアウト = 600

もう一度mysqlを再起動します

原則的な回答

MySQL のデフォルトの接続数は 100 です。制限を超えると接続できなくなります。実際に機能している接続数は 100 よりはるかに少なく、そのほとんどはスリープ モードになっています。

したがって、接続数を増やすか、不要な接続を切断します。後者をお勧めします。

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • MySQL「接続が多すぎます」エラー MySQL 解決策
  • MySQL 1040 エラー「接続が多すぎる」を解決する方法
  • MySQL エラー接続数が多すぎる場合の解決策
  • MySQL 接続数を設定する方法 (接続数が多すぎる)
  • MySQL のオープン接続が多すぎる問題の解決策
  • MySQL の接続数が多すぎるエラーの原因と解決策
  • MySQL エラー「接続が多すぎます」を解決する方法

<<:  Vueはダイアログのカプセル化を実装します

>>:  LinuxでJenkinsのパスワードを忘れる方法

推薦する

nginx を介して方向プロキシを実装するプロセスの図

この記事は主に、nginx を介して方向プロキシを実装するプロセスを紹介します。この記事のサンプル ...

Linux での中国語入力方法の問題を素早く解決する

背景: 最近、資産報告関連の機能に取り組んでおり、中国語入力をサポートする必要があります。通常のショ...

HTML テーブルのオーバーフローの解決方法

テーブルが広い場合は、あふれてしまう可能性があります。たとえば、左と右の 2 つの div がありま...

MySql テーブル、データベース、シャーディング、パーティショニングの知識ポイントの紹介

1. はじめにデータベース内のデータ量が一定レベルに達すると、システムパフォーマンスのボトルネックを...

MySQLのストレージエンジンについてお話しましょう

基礎リレーショナル データベースでは、各データ テーブルはファイルに相当し、異なるストレージ エンジ...

Nginx と GeoIP モジュールを使用して IP の地域情報を読み取る方法

LinuxにGeoIPをインストールする yum で nginx-module-geoip をインス...

Xtrabackup を使用して MySQL をバックアップおよび復元する方法

目次1. バックアップ1.1 万全の準備1.2 追加の準備2 バックアップとリカバリ2.1 データの...

LinuxでPythonの組み込みバージョンを削除する手順の詳細な説明

大きな落とし穴、Linuxシステムに付属するPythonのバージョンを簡単に削除しないでください1....

MySQLが数十億のトラフィックをサポートする方法

目次1 マスター・スレーブの読み取り・書き込み分離1.1 コア2 マスタースレーブレプリケーション2...

MySQLのトランザクション特性とレベル原則の分析

1. トランザクションとは何ですか?データベース トランザクション (略称: トランザクション) は...

MySQL最新バージョン8.0.17解凍版インストールチュートリアル

個人的にはインストール版よりも解凍版の方がインストールしやすいと思います。早速、解凍版のインストール...

ActiveMQ メッセージ サービスを構築するための Docker 学習方法の手順

序文ActiveMQ は、Apache が開発した最も人気があり強力なオープン ソース メッセージ ...

MySQL データベースの基本的な SQL ステートメントの概要

この記事では、例を使用して、Mysql データベースの基本的な SQL ステートメントについて説明し...

初心者向けMySQLインデックス

序文MySQL インデックスで最も重要なデータ構造は B+ ツリーなので、まずは B+ ツリーの原理...