SQLalchemy(MySQL):重置或类似过程中出现异常 - 查询期间丢失与 MySQL 服务器的连接

问题描述 投票:0回答:1

我正在运行一个 6 分钟长的读取查询。

source_connection = source_db_connection.connect().execution_options(stream_results=True, max_row_buffer=1000)

for df_from_db in pd.read_sql_query(raw_data_query_pandas, source_db_connection, params=(...), chunksize=1000)

并出现以下错误:

    Exception during reset or similar
Traceback (most recent call last):
  File "%PATH%\venv\lib\site-packages\sqlalchemy\pool\base.py", line 986, in _finalize_fairy
    fairy._reset(
  File "%PATH%\venv\lib\site-packages\sqlalchemy\pool\base.py", line 1432, in _reset
    pool._dialect.do_rollback(self)
  File "%PATH%\venv\lib\site-packages\sqlalchemy\engine\default.py", line 692, in do_rollback
    dbapi_connection.rollback()
  File "%PATH%\venv\lib\site-packages\mysql\connector\connection_cext.py", line 538, in rollback
    self._cmysql.rollback()
_mysql_connector.MySQLInterfaceError: Lost connection to MySQL server during query

尝试连接参数:pool_recycle=240,pool_pre_ping=True,poolclass=NullPool

python mysql pandas sqlalchemy
1个回答
0
投票

我将逻辑更改为:

for df_from_db in pd.read_sql_query(raw_data_query_pandas, source_connection, params=(...), chunksize=1000):
    df_from_db.to_csv(filename, index=False, mode='a', header=False)

错误就消失了。

© www.soinside.com 2019 - 2024. All rights reserved.