harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

MySQL トラブルシュート

[MySQL]db接続エラーのメモ(max_connectionsメモ)

投稿日:2014年1月30日

Last Updated on 2021年7月4日 by かんりにん

 
割と初歩的なメモ。環境としては、OSはCentOS6.5、MySQLはRPM版5.5(Remi)です。

開発中のPHPのAppサーバーからdbサーバーへアクセスする際、コネクションエラーでアクセスができなくなるエラーが発生。
開発チームから相談を受け、DB側で確認したところ、コネクション数が確かに多い。

mysql> show status like 'Conn%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Connections   | 343   |
+---------------+-------+
1 row in set (0.00 sec)

まだテスト段階なので、”max_connections”などDBの設定もデフォルトのままの段階なので
このエラーはやむを得ず・・・

mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 151   |
+-----------------+-------+
1 row in set (0.00 sec)

しかしテストを始めたばかりでこのコネクション数は何だろ、と思いつつ
コネクション数の上限超過でアクセス制限がかかるのか、そのような設定があるのかを調べたところ、
mysqlのサイトで以下のような情報が。(4.1なので古いが・・・)

http://dev.mysql.com/doc/refman/4.1/ja/blocked-host.html

“これは、mysqld が ‘hostname’ ホストから多くの接続エラー(max_connect_errors)を受けた場合に発生します。”
“max_connect_errors 大量発生後、mysqld は何か問題(クラッカーからの攻撃など)が発生したと判断し、”
“このホストからの接続を拒否するようにします。これを解除するには、mysqladmin flush-hosts コマンドを実行します。”
“デフォルトでは、接続エラーが 10 回発生すると、mysqld はそのホストを拒否します。”

とのこと。テストの段階で、ここも見落とさずに考慮しとかないと。

ということで回避策を。DB側で実施する。

コネクション数をフラッシュする場合

まずコネクション数をflush

# mysqladmin -h localhost -uroot -p flush-hosts

そのあと、max_connectionsを余裕のある値に拡張するなどして対応

mysql> set global max_connections = <設定値>;

再起動できる状況なら、mysqld起動時に”max_connect_errors”の回数などを指定して起動することも可能。

shell$ mysqld_safe -O max_connect_errors=10000 &

ただ、起動するたびに指定するのはアレなので
恒久的には、”set global”でなくmy.cnfに記述するのが適切。

ただし根本的な解決は、接続エラーが発生する原因とその回数を突き止めて直すこと!
ということで開発アプリの修正のお手伝いをしてきますw
 

-MySQL, トラブルシュート
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

no image

[MySQL] ZRM(Zmanda Recovery Manager) を試してみる

お客さんのWebサイトで運用しているMySQLにて、ここんとこmysqldump実行時にエラーが出るように。 レプリケーションにてスレーブ2ホストで同期しているので、ダンプのエラー自体は緊急性は高くな …

[MySQL]ログの種類[メモ]

  おもに自分向けメモ… [pukiwiki] **ログの種類 ***1.エラーログ 実行エラーログは、起動、停止及び実行時のエラーが MySQLディレクトリに”ホスト名.err&#822 …

no image

メールサーバー構築ログ[postfix+mysql+postfixadmin]

[pukiwiki] 約2年ぶりくらいにpostfix+mysql+postfixadminでメールサーバーをセットアップしたので 備忘録として。 割とスタンダードな内容なので、参考になるかわかりませ …

[MySQL] mysqlhotcopyを試してみた

基本的にMyISAMのコピーをするだけで、InnoDBには使用不可。 複数のストレージエンジンをもつ環境では、あまり使い道は無いかも。一方で高速動作が見込めるので、MyISAMのみの環境ではメリットは …

no image

[メモ]”snmpd: truncating integer value > 32 bits”[何かな?]

ただいま炎上案件の火消し作業を絶賛手伝い中につき、調べてる時間が無いため、メモ書きしておきます(自分用)。 CentOS5.10のAppサーバーで以下のようなメッセージが/var/log/messag …

宅麺