ホームページ  >  記事  >  データベース  >  MySQL データベース エラー: 接続が多すぎる解決策

MySQL データベース エラー: 接続が多すぎる解決策

黄舟
黄舟オリジナル
2017-09-11 11:29:222772ブラウズ

この種のエラーは、明らかに mysql_connect の後に mysql_close を忘れたために発生します。
多数の接続が行われると、「接続数が多すぎます」というエラーが表示されます。mysql 接続のデフォルト数は 100 です。このエラーはどのような状況で発生しますか?
通常の mysql_connect の後、mysql_close() が呼び出されて接続が閉じられます
ただし、接続エラーが発生した場合、mysql_real_query() がエラーで終了すると、mysql_close(); を忘れてしまう可能性があります。
したがって、プログラムが戻る前に、次のことを判断する必要があります。最も安全な方法は、関数を作成するときに終了を 1 つだけにすることです。
mysql 設定ファイルを変更することで、許可される接続の数を増やすこともできます。
サーバーで次のようなエラーが頻繁に発生することがあります:
エラー メッセージは次のとおりです:

Can not connect to MySQL server
Error: Too many connections
Errno.: 1040
Similar error report has beed dispatched to administrator before.

公式ドキュメントによると、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 フォルダーからダウンロードしてください。コンパイルされたソース コードを /etc/my.cnf にコピーします。中サーバー構成の my-medium.cnf を使用しています。たとえば、私の[mysqld]の内容は次のとおりです

[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 160M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
max_connections=1000

mysqlにあまり詳しくないため、多くのパラメータは変更されていません。ははは。 。
2. mysqld スクリプトを使用して自動起動しないユーザー。
$MYSQL_HOME/bin/mysqld_safe ファイルを変更します
例:

/usr/local/mysql/bin/mysqld_safe这个文件
grep -n ‘max_connection’ $MYSQL_HOME/bin/mysqld_safe

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

以上がMySQL データベース エラー: 接続が多すぎる解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。