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

推薦する

jQueryは時間セレクタを実装する

この記事の例では、参考までに時間セレクターを実装するためのjQueryの具体的なコードを共有していま...

jsは、州、市、地区の3レベルのリンクの非選択ドロップダウンボックスバージョンを実現します。

インターネットで3レベルリンクを検索したところ、すべてオプションで書かれていました。突然、別の方法で...

Visual Studio Codeを使用してMySqlデータベースに接続し、クエリを実行します。

Visual Studio Code は、Microsoft が開発した強力なテキスト エディター...

Docker 接続 MongoDB 実装プロセスとコード例

コンテナが起動した後まず管理者にログインして新しいユーザーを作成してください $ docker ex...

momentJs を使用してカウントダウン コンポーネントを作成する (サンプル コード)

今日はvueとmomentで作ったカウントダウンを紹介したいと思います。具体的な内容は以下のとおりで...

Docker で MySQL サービスをデプロイする方法と、遭遇する落とし穴

最近、ポーターを学んでいます。こんなに強力なものがあったなんて、今まで知らなかった気がします。クラス...

Vueは虫眼鏡付きの検索ボックスを実装します

この記事では、Vueを使用して虫眼鏡付きの検索ボックスを実装する方法を紹介します。具体的な内容は次の...

React useEffect の理解と使用

目次繰り返しレンダリングループを避ける副作用の除去についてReact16.8 の新しい useEff...

Mysql systemctl start mysqld によって報告されるエラーの解決策

エラーメッセージ:制御プロセスがエラー コードで終了したため、mysqld.service のジョブ...

MySQL 結合テーブルクエリの基本操作 左結合のよくある落とし穴

概要中小規模のプロジェクトでは、特にレポートを作成するときに、結合テーブル クエリが非常に一般的な操...

Windows Server 2019 のインストール (グラフィカル チュートリアル)

Windows Server 2019 は、Microsoft が公式にリリースした最新のサーバー...

LINUX ポートが占有されているかどうかを確認します

ポートが占有されているかどうかは、これまで一度もわかりませんでした。多くの人に尋ねて、ようやくわかり...

クリックして認証コードと認証を切り替えるJavaScript

この記事では、クリックして切り替える認証コードと認証を実装するためのJavaScriptの具体的なコ...

回転するフリップカードアニメーションの効果を実現するCSS

回転フリップ効果の CSS アニメーション、具体的な内容は次のとおりです。 1. まず2つのボックス...

JavaScript ファクトリーパターンの説明

目次シンプルファクトリーファクトリーメソッド安全な工場方法アブストラクトファクトリー要約するシンプル...