技術情報

Mysql Server has gone away というエラーを修正するには?

MySQL サーバがなくなった(エラー 2006)には、主に 2 つの原因と解決策があります:

  • サーバーがタイムアウトし、接続を閉じました。修正するにはmy.cnf設定ファイルのwait_timeout mysql 変数が十分な大きさであることを確認してください。(例:wait_timeout = 28800)
  • また、my.cnf 設定で innodb_log_file_size mysql 変数をinnodb_log_file_size = 128MBまたはそれ以上に設定する必要があるかもしれません。
  • サーバが不正なパケットまたは大きすぎるパケットをドロップしました。mysqld が大きすぎるパケットまたは不正なパケットを受け取った場合、クライアントに何か問題が発生したとみなし、接続を閉じます。修正するには、my.cnfファイルの最大パケットサイズ制限max_allowed_packetを大きくします。(例:max_allowed_packet = 128Mに設定)その後、MySQL サーバを再起動します:sudo /etc/init.d/mysql restart
  • データベースサーバーの容量が不足しました。これは、DB スキーマの変更を必要とする Matomo データベースの更新を実行するときに発生する可能性があります(特に大規模なデータベース)。

これらの変更を行い、MySQLまたはMariaDBサーバーを再起動すると、問題は修正され、エラーが発生しなくなるはずです。そうでない場合は128Mの値を256Mに増やしてみてください。トラフィックやデータの多いウェブサイトでは、1024Mに増やす必要があるかもしれません。

上記の変更で問題が解決せず、MatomoでMYSQLIアダプターを使用している場合は、config/config.ini.phpファイルのadapter = PDO\MYSQLを変更してみてください。

ウェブサイトやアプリを測定し、分析結果を管理するためのMatomo Analyticsの詳細についてはこちら