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のパスワードを忘れる方法

推薦する

HTML ハイパーリンク内の中国語文字化けの分析と解決

Vm 内のハイパーリンク URL は、Get 要求のパラメータとして中国語と連結する必要があります。...

Mysql のいくつかの複雑な SQL ステートメント (重複行のクエリと削除)

1. 重複行を見つける blog_user_relation a から * を選択 WHERE (...

Dockerイメージをプルしてバージョンを確認する方法

イメージのバージョンとタグを確認するには、docker hubで確認する必要があります。アドレスは次...

MySQL 外部キー設定方法の例

1. 外部キーの設定方法1. MySQL では、2 つのテーブルを関連付けるために、外部キー (FO...

前後の秒、分、時間、日数を取得するMySQLデータベース

現在の時刻を取得します: current_timestamp を選択します。出力: 2016-06-...

NodeはMySQLに接続し、追加、削除、変更、チェックのための実装コードをカプセル化します。

目次ノードはMysqlに接続しますMySQLモジュールをインストールするMySQLに接続するよく使わ...

クラウド サーバー Ubuntu_Server_16.04.1 に MySQL をインストールしてリモート接続を有効にする方法

1. MySQLをインストールします。対応するソフトウェアをインストールするには、次の 3 つのコマ...

CSS の div の下の同じ行にある複数の要素を右揃えにする

方法1:フロート:右さらに、フローティングにするとレイアウトがよりコンパクトになります(隙間がなくな...

タブ切り替え機能を実装するJavaScriptカスタムプラグイン

この記事では、タブ切り替え機能を実装するためのJavaScriptの具体的なコードを参考までに共有し...

MySql 5.7.17 winx64 のインストールと設定に関する詳細なチュートリアル

1. ソフトウェアをダウンロードする1. MySQL の公式サイトにアクセスし、Oracle アカウ...

MySQLのFreeListメカニズムの詳細な説明

1. はじめにMySQL が起動すると、BufferPool が初期化されます。クエリ操作を実行する...

MySQL 5.7 の同時レプリケーションにおける暗黙のバグの分析

序文当社の MySQL オンライン環境のほとんどはバージョン 5.7.18 を使用しています。このバ...

MySQLデータベースに他のIPアドレスからアクセスできない問題の解決策

序文先ほどのプロジェクトを参考にすると、環境は整いました。プロジェクトの準備と検証の段階で、問題が発...

Linux (Centos7) に mysql8.0.18 をインストールするチュートリアル図

1 インストールリソースパッケージmysql-8.0.18-1.el7.x86_64.rpm-bun...

VMware での Ubuntu Docker のインストール (コンテナ構築)

1. マインドマップ 2. コンテナの構築方法2.1 実験環境の準備(1)環境選択管理ツール: D...