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してきました。