明白なことを述べると、これは MySQL が接続を閉じたことを意味します。これは、- より大きいクエリを送信したか、-クエリ間のmax_allowed_packet
時間が より長くかかったためwait_timeout
です。
タイムアウトと仮定すると、
をスクリプト$wpdb->query("set wait_timeout = 1200")
の先頭近くに配置します。これにより、WP コア ファイルを変更する手間が省けます。
それでもうまくいかない場合は、MySQL の「ping」機能を試してください。wp-includes/wp-db.php
で、 を見つけ、そのfunction query(
少し下にある行はmysql_query
- その上に行を追加します
mysql_ping( $dbh );
Ping は接続をチェックし、再接続を試みます。実行時間の長いスクリプトでは非常に便利です。
うまくいけば、その中の何かが (a) 理にかなっていて、(b) うまくいくでしょう。また、これを読んでいる他の人のために、Wordpress をアップグレードすると、コア ファイルに加えた変更が上書きされることを忘れないでください。
リンク: http://blog.webyog.com/2009/09/02/%E2%80%9Cmysql-server-has-gone-away%E2%80%9D-part-2-session-timeout/およびhttp: //php.net/manual/en/function.mysql-ping.php