Python の有名な O/R マッパであるところの SQLAlchemy を MySQL と一緒に使っていたところ、ちょくちょく 'MySQL server has gone away' というエラーになることに気づいた。 今回はこの問題の原因と対策について調べたので書き残しておく。 結論から先に書いておくと上記のエラーは MySQL とのコネクションがタイムアウトを起こした状態で SQLAlchemy が SQL 文を発行したときに発生する。 対策については、MySQL とのコネクションがタイムアウトを起こさないように、一定時間毎にコネクションを張り直す設定を SQLAlchemy に行えば良い。 問題を再現させる環境を作る まずは問題を再現させるための環境作りから始める。 今回はプラットフォームに CentOS7 を使うことにする。 $ cat /etc/redhat-release