これ、なんのエラー?
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
そもそもDBが立ち上がってないのなら全員これが出るだろうが、一部の接続だけがつながらないのであれば アクセス許可が無いパターン、もしくはmax_connect_errors システム変数の設定値を超えて接続失敗した場合が考えられる。
アクセス許可が無いパターン
や
を参考にするとよい。
max_connect_errors システム変数の設定値を超えて接続失敗した場合
そもそもmax_connect_errors って?
連続して接続要求が中断された場合にそれを許可する回数を決定します。 要するに接続失敗回数の上限で、これを超えて接続失敗するとそのホストからの接続はロックするよ、というもの。 間で一度でも成功するとリセットされるみたい。
解消方法は?
- max_connect_errorsを増やす
shell> mysqld_safe --max_connect_errors=10000 &
または
mysql> SET GLOBAL max_connect_errors=10000;
またはFLUSH HOSTSでキャッシュからロックされたホスト情報を吹っ飛ばす。
mysql> FLUSH HOSTS