【发布时间】:2022-01-16 09:46:06
【问题描述】:
我最近从 SQLite 迁移到 MySQL 并开始遭受此类问题的困扰。每当我尝试通过超过 100 000 行的 sqlalchemy 使用 pandas 的 to_sql 时,sqlalchemy 都会崩溃并显示以下消息。我从来没有遇到过这样的 SQLite 问题(我在没有 sqlalchemy 的情况下使用它)。在 PyCharm 的 SQL 工具中复制这些表时我没有任何问题。但是每当我使用 pd.to_sql、sqlalchemy 和 mysql 的组合时,我就会遇到麻烦。
示例代码
import numpy as np
import pandas as pd
from sqlalchemy import create_engine
table = pd.DataFrame(np.random.rand(1000000, 10))
connection = create_engine(f"mysql+mysqlconnector://{user}:{pw}@{host}/{db}")
table.to_sql('TEST', connection, if_exists='replace', index=False)
错误信息
sqlalchemy.exc.OperationalError: (mysql.connector.errors.OperationalError) 2055: Lost connection to MySQL server at '<host>', system error: 32 Broken pipe[<mySQLQuery>]
(Background on this error at: https://sqlalche.me/e/14/e3q8)
无论我使用本地 mysql 数据库还是云中的数据库,都会发生这种情况。
【问题讨论】:
标签: python mysql pandas sqlalchemy