sqlalchemy + pymysql にて、 stream_results=True にしたら Lost connection to server during query が出た時の対処方法
sqlalchemy+pymysql で MySQL サーバーから大量のレコードを select しようとしました。
その際、 stream_results=True の設定を行うと、 select から 2,3 分ほど経った段階で、
Lost connection to server during query
のエラーが発生し、 select が途中で中断してしまいます。なお、 stream_results=True を付与しなければ、この問題は発生しませんでした。
https://dev.mysql.com/doc/refman/8.0/en/error-lost-connection.html
上記ページをみてみても、
net_read_timeout
=> 3600 にしたけど、 2,3分で例外発生connection_timeout
=> 最初の何件かは select できていることを確認したので、 establish connection まわりの例外ではなさそうmax_allowed_packet
=> MySQL Workbench で、個別に例外が発生したタイミングで select していたレコードたちを個別で select してみると、問題なく select できる
であり、解決に至っていません。
質問
- 何が原因で、この問題は発生していますか?