Rails アプリケーションのドメインロジックを共有するためにバッチでも Rails を使っているケースはあるかと思います。 先日、長時間稼働しているバッチで MySQL サーバの再起動後に MySQL client is not connected が起きたんですが、数年 Rails を使っていて初めて遭遇したエラーだったので、次の 2 点について調べてみました。 このエラーにはどう対処すべきなのか? バッチ特有の問題なのか? そもそも MySQL client is not connected とは? Mysql2 のこの辺で定義されているエラーです。 定義を見る限り、client が初期化されているにも関わらず、network socket (file descriptor) が無効な状態だとこのエラーになるみたいですね。 network socket が無効な状態になるケースですが
![Mysql2 の "MySQL client is not connected" について](https://cdn-ak-scissors.b.st-hatena.com/image/square/e4ae451b6eb68f86e6395ff31c162da99986ea8f/height=288;version=1;width=512/https%3A%2F%2Fabicky.net%2Fassets%2Flogo-ecc7933ebcc8ad52763d7bdcc07df22f9534054dd930e28b01860043de7ca6ce70b47c3b5c250c3a275c3d6f107fad47a0b67347b1e199de9a2f603fa32d95aa.png)