2

PHP 5.4.11 に移行しましたが、これは長いメンテナンス スクリプトで "MySQL server has gone away" エラーが発生することを除いて動作します。PHP 5.3.17 はこれを行いませんでした。

php.ini または my.cnf ディレクティブを追加/削除する必要がありますか? クエリ PHP クラス スクリプトを更新する必要がありますか (mysqli 拡張機能を使用しています)?

4

2 に答える 2

5

の下にあるMySQLリファレンスマニュアルを確認する必要がありますC.5.2.9. MySQL server has gone away。これが発生する可能性のある多くの考えられる理由がリストされています。そのページに記載されています:

MySQLサーバーがなくなったというエラーの最も一般的な理由は、サーバーがタイムアウトして接続を閉じたことです。

長いメンテナンススクリプトを実行しているので、それが理由だと思います。ページからの別のポイント:

デフォルトでは、何も起こらなかった場合、サーバーは8時間後に接続を閉じます。mysqldの起動時にwait_timeout変数を設定することにより、制限時間を変更できます。5.1.4項「サーバーのシステム変数」を参照してください。

mysqli.reconnect(php.iniで)1に設定するか、オプションMYSQLI_OPT_CONNECT_TIMEOUTから増やすことができます。mysqliconfigを参照してください。また、5.3ノートから5.4ノートへの移行も検討する必要があります。コードを見ずに問題を特定するのは困難です。

于 2013-02-24T11:09:22.637 に答える
1

connect_timeout は問題ではありませんでした。クエリ クラスを変更して、以下を追加する必要がありました。

mysqli_options(MYSQLI_INIT_COMMAND,"SET SESSION wait_timeout=600;");

于 2013-02-25T23:12:45.947 に答える