問い合わせの間の大いに恐れられたMySQLのエラーメッセージは「MySQLサーバーなくなった」である。 代わりとなるメッセージは「問い合わせの間のサーバーへの無くなった関係」である。 これはWordPressを含むがそれに限定されずいろいろPHPソフトウェアを苦しませる奇妙な問題である。 それのための複数の原因がある。 それを固定するためにことができるか何をする公有地およびあるまれな原因を見よう。

コモン・コーズは次のとおりである:
1。 時間を計られ、関係閉まるサーバー。 デフォルトで、サーバーは8時間か28800秒後に何も起こらなかったら関係を閉める。 wait_timeoutの変数の配置によって制限時間を変えることができるあなたのサーバーの/etc/my.cnfによってmysqldを始めるとき(Linuxで; 窓でインストールディレクトリでファイルを)また見つけなさい。 これは大抵耐久性がある関係に影響を与える; 関係は開きmysql_pconnectを() PHPで使用する。 それはまた言うサーバ側の関係の共同利用を分かち合われた関係にからの影響を与えることができる。

2。 MySQLのあなたの関係の「近いの」出し、密接な関係の問い合わせを動かすことを試みてしまったのでMySQLサーバーを受け取る別の共通の理由に行った離れている間違いがあるある。 これは簡単な論理問題である。 多数の糸を渡る関係を共有しているか。

3。 クライアント側のTCP/IPの関係からタイムアウトを得た。 これは命令を使用したら起こるかもしれない: mysql_options (…、MYSQL_OPT_READ_TIMEOUT、…) またはmysql_options (…、MYSQL_OPT_WRITE_TIMEOUT、…)。 この場合タイムアウトを、上記されているように高めることで、問題を解決できるのを助けるかもしれない。

4。 サーバ側のタイムアウトに出会い、 顧客の 自動再接続は不具である。 細部および解決のために上でつながる記事を参照しなさい。

5。 不正確または余りに大きいサーバーに問い合わせを送ればまたこれらの間違いを得ることができる。 mysqldが余りに大きいですまたは故障中である包みを受け取れば、何かが顧客とうまくいかなかった仮定し、関係を閉めると。 大きい問い合わせを大きいBLOBのコラムを使用すれば、(例えば必要とすれば)、1MBの省略時の値があるサーバーのmax_allowed_packetの変数の配置によって問い合わせの限界を高めることができる。 また顧客の端の最高の包みサイズを増加する必要がある場合もある。 包みサイズの配置のより多くの情報はセクションB.1.2.9で、「大きい」包み余りに与えられる。

6。 挿入物はまたはまた大きいの多くの列これらの種類の間違いを引き起こすことができる挿入する声明を取り替える。 どちらかは列番号に関係なくサーバーにこれらの声明の1つ挿入される単一の要求を送る; 従って、頻繁に挿入物ごとに送られる列番号の減少によって間違いを避けるか、または取り替えることができる。

7。 4.0.8およびあなたのサーバーが4.0.8以上にである、または他の方法を送ればより古ければあなたの顧客が包み16MBかより大きいまた無くなった関係を得る。

少数のまれな原因は次のとおりである:
1.まれにdbの管理者は殺害の声明またはmysqladminの殺害命令を用いる連続した糸を殺さないかもしれない。

2。 別のホストで動くクライアントアプリケーションにそのホストからのMySQLサーバーに接続する必要な特権がない。

3。 Windowsの顧客を使用して、サーバーは命令の前に関係を(おそらくので切れるwait_timeout)出された落とした。 Windowsの問題はサーバーへのTCP/IPの関係へ書くことが、代りに間違いをとき関係からの答えを読むことを試みる得るがとき時としてMySQLがOSから間違いを得ないことである。

4. MySQL 5.0.19前に、MYSQLの構造の再接続の旗が1と等しくて、MySQLは自動的にサーバーは元の問い合わせをまたはない得たかどうか知らないので問い合わせを再接続しないし、再発行しない。

5。 あなたのサーバーかネットワークが頼るDNSサーバがダウン状態になれば)ホストネーム調べが失敗すればこの間違いを見ることもまた可能である(例えば。 これはMySQLがネーム・リゾリューションのための上位システムに依存しているがあったり、ので働いているかどうかわかることをできない問題は- MySQLの視点から…他のどのネットワークのタイムアウトからも識別不可能である。

6。 MySQLがと始まればまたMySQLサーバーに行った離れている間違いが-とばネットワーキングの選択あることを見るかもしれない。

7。 またプロセスMySQLサーバーへの同じ関係を使用するために試みる、子供分岐する適用のこの間違いに出会うことができる。 これは各子供プロセスのために別の関係を使用することによって避けることができる。

8。 従ってこの間違いを引き起こすことができる別のネットワーキング問題はMySQLの港(デフォルト3306)があなたの防火壁によって妨げられれば起こり、MySQLサーバーへの関係を全然防ぐ。

9。 問い合わせをか実行している間サーバーが死んだ虫に出会った。

それはこれらの問題を認識し、解決するのに時間がおよび努力をかかる。 経験から話すことそれは頻繁にそれが最初の場所を見るものにではない。 それを解決するまで何も、勤勉に除外するすべての可能性を仮定してはいけない。