Mysql
 sql >> Base de données >  >> RDS >> Mysql

Encodage inconnu lors de l'utilisation de df.to_sql() pour écrire dans MySQL à l'aide de pyodbc

J'utilisais le mauvais pilote. Le pilote du serveur était MySQL ODBC 5.1 Driver et j'utilisais dans MySQL ODBC 8.0 ANSI Driver . Cela explique l'étrange encodage.

params = urllib3.parse.quote_plus("DRIVER={MySQL ODBC 5.1 Driver};"
                                f"SERVER={host}:{port};"
                                f"DATABASE={db};"
                                f"UID={username};"
                                f"PWD={password};"
                                f"charset=utf8")
db_engine = create_engine(f"mysql+pyodbc:///?odbc_connect={params}")
connection = db_engine.connect()