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 テーブル マークアップ チュートリアル (40): ヘッダーの暗い境界線の色属性 BORDERCOLORDARK

テーブルヘッダーでは、暗い境界線の色を個別に定義できます。基本的な構文<TH 境界線の色を暗く...

Dockerコンテナのインポ​​ートとエクスポートに関するチュートリアル

背景Docker の人気は、コンテナの共有と移植が容易であることと密接に関係しています。ユーザーは、...

MySQL 8.0.19 インストールチュートリアル

公式サイトからインストールパッケージをダウンロードします: mysql-8.0.19-linux-g...

MySQL全文検索の使用例

目次1. 環境整備2. データの準備3. ショーを始める4. 単語分割エンジン要約する参考文献1. ...

ハイパーリンクを表示して開く方法

<br />インターネット上の無数の情報は基本的に HTML ドキュメントで構成されてお...

Vue3.0 における Ref と Reactive の違いの詳細な分析

目次参照と反応参照反応的RefとReactiveの違いshallowRef と shallowRea...

MySQL の where と on の違いと、いつ使用するか

以前、テーブル結合クエリを書いていたとき、whereとonの違いがわからず、SQLに小さな問題が発生...

Angular Cookie の読み取りおよび書き込み操作コード

Angular Cookie の読み取りおよび書き込み操作のコードは次のようになります。 var a...

よくある MySQL 設計エラーをご存知ですか?

インターネットの発達により、バスを待ったり地下鉄に乗ったりする時間など、断片的な時間を活用して、いつ...

React onClickにパラメータを渡す問題について話しましょう

背景下のようなリストでは、削除ボタンをクリックすると削除操作を実行する必要があります。 リスト生成:...

プロジェクトに必須の 8 つの JavaScript コード スニペット

目次1. ファイル拡張子を取得する2. コンテンツをクリップボードにコピーする3. スリープ時間は何...

HTML テーブル マウス ドラッグ ソート機能

効果画像: 1. ファイルをインポートする<script src="js/jquer...

広告を閉じる効果を実現するJavascript

参考までに、Javascript を使用して広告を閉じる方法に関するケース スタディを示します。詳細...

jQueryは何に使われるのですか?jQueryは実際にはjsフレームワークです

jQuery 入門jQuery ライブラリは、簡単なマークアップ行を使用して Web ページに追加で...

mysqlはルートユーザーと一般ユーザーを作成し、機能を変更および削除します。

方法1: SET PASSWORDコマンドを使用する mysql -u ルート mysql> ...