mita2 database life

主にMySQLに関するメモです

MySQL The client was disconnected by the server because of inactivity の対処方法

3ヶ月ブログをサボっておりました。。。リハビリがてらのエントリー。

The client was disconnected by the server because of inactivity エラー

MySQL 8.0.24 からタイムアウト(wait_timeout / interactive_timeout)時のエラーメッセージがに変更になりました。

8.0.24 以前 (Before)

MySQL server has gone away もしくは Lost connection to MySQL server during query

8.0.24 以降 (After)

The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.

以前のエラーメッセージは単に接続が切れたことのみを示しています。 タイムアウトした場合も、ネットワークが切れた場合も、max_allowed_packet が小さすぎる場合も・・・「MySQL server has gone away」エラーでした。 原因は別途切り分ける必要がありました。

8.0.24 以降では、wait_timeout / interactive_timeout が原因でタイムアウトした場合は、その旨をエラーメッセージで明確に表示してくれるようになりました。 わかりやすい!

対処方法

The client was disconnected by the server because of inactivity エラー はアイドル時間が wait_timeout / interactive_timeout 値を超えたことで発生します。 「wait_timeout (CLIの場合、interactive_timeout)の設定を長くする」もしくは「アイドル時間が長くならないよう処理の流れを見直す」ことで解決します。

mysql> SET GLOBAL wait_timeout=XXX

参考

先月、MySQL8.0.24リリースノートでわいわい言う勉強会 に参加して、8.0.24 の変更点についてLTしてきました。

参考書籍