elP*_*tor 1 python mysql pandas pandas-to-sql
我正在尝试将数据帧写入 MySQL 表,但出现(111 Connection refused)错误。
我在这里遵循了接受的答案: 使用 SQLAlchemy, to_sql 使用 Pandas 写入 MySQL 数据库
答案的代码:
import pandas as pd
import mysql.connector
from sqlalchemy import create_engine
engine = create_engine('mysql+mysqlconnector://[user]:[pass]@[host]:[port]/[schema]', echo=False)
data.to_sql(name='sample_table2', con=engine, if_exists = 'append', index=False)
Run Code Online (Sandbox Code Playgroud)
...并且该create_engine()行没有错误地工作,但该to_sql()行因此错误而失败:
(mysql.connector.errors.InterfaceError) 2003: Can't connect to MySQL server on 'localhost:3306' (111 Connection refused)
Run Code Online (Sandbox Code Playgroud)
我如何连接到我的 MySQL 数据库/表并不是真正相关的,所以完全不同的答案值得赞赏,但鉴于熊猫 0.20.2 中 MySQL 'flavor'的弃用,将数据帧写入 MySQL 的正确方法是什么?
感谢@AndyHayden 的提示,这个答案就是诀窍。基本上取代mysqlconnector的mysqldb是关键。
engine = create_engine('mysql+mysqldb://[user]:[pass]@[host]:[port]/[schema]', echo = False)
df.to_sql(name = 'my_table', con = engine, if_exists = 'append', index = False)
Run Code Online (Sandbox Code Playgroud)
哪里[schema]是数据库名称,并在我的具体情况,:[port]省略与[host]是localhost。