MySQL 的 sqlalchemy+pyodbc 在尝试从引擎创建连接时给我一个错误
sqlalchemy+pyodbc for MySQL is giving me an error while trying to create a connection from engine
我正在尝试使用 sqlalchemy 和 pyodbc 连接到 MySQL 数据库。使用 ODBC 连接是一项要求,因此我不能使用任何其他方法来创建引擎和连接。
这是我用来创建引擎和连接的代码。
params = quote_plus("DRIVER={MySQL ODBC 8.0 Unicode Driver};"
f"SERVER={host}:{port};"
f"DATABASE={db};"
f"UID={username};"
f"PWD={password}")
# Creating dbengine and connection
db_engine = create_engine(f"mysql+pyodbc:///?odbc_connect={params}")
print('Type of dbengine', type(db_engine))
connection = db_engine.connect()
我给出了从 connection = db_engine.connect()
获得的堆栈跟踪的最后 3 行。
File "C:\ProgramData\Anaconda3\envs\nice_rpa\lib\site-packages\sqlalchemy\engine\base.py", line 1276, in _execute_context
self.dialect.do_execute(
File "C:\ProgramData\Anaconda3\envs\nice_rpa\lib\site-packages\sqlalchemy\engine\default.py", line 608, in do_execute
cursor.execute(statement, parameters)
TypeError: The first argument to execute must be a string or unicode query.
我没有传递任何查询,或者根据 connect() 文档,connect 只需要 1 kwarg 并且没有查询。
我不明白为什么会收到此错误。有人可以解释这个错误的原因和原因吗?
此外,似乎 pyodbc 有时会给出很多错误(根据我阅读的其他资源)。 sqlalchemy+pyodbc 有没有好的替代方案?我最终想将 connection
传递给 pd.to_sql
和 `pd.read_sql' 并且必须使用 odbc。
这是 SQLAlchemy 1 的问题。3.x 和 mysql+pyodbc://
已在 SQLAlchemy 1.4 中修复。
我正在尝试使用 sqlalchemy 和 pyodbc 连接到 MySQL 数据库。使用 ODBC 连接是一项要求,因此我不能使用任何其他方法来创建引擎和连接。 这是我用来创建引擎和连接的代码。
params = quote_plus("DRIVER={MySQL ODBC 8.0 Unicode Driver};"
f"SERVER={host}:{port};"
f"DATABASE={db};"
f"UID={username};"
f"PWD={password}")
# Creating dbengine and connection
db_engine = create_engine(f"mysql+pyodbc:///?odbc_connect={params}")
print('Type of dbengine', type(db_engine))
connection = db_engine.connect()
我给出了从 connection = db_engine.connect()
获得的堆栈跟踪的最后 3 行。
File "C:\ProgramData\Anaconda3\envs\nice_rpa\lib\site-packages\sqlalchemy\engine\base.py", line 1276, in _execute_context
self.dialect.do_execute(
File "C:\ProgramData\Anaconda3\envs\nice_rpa\lib\site-packages\sqlalchemy\engine\default.py", line 608, in do_execute
cursor.execute(statement, parameters)
TypeError: The first argument to execute must be a string or unicode query.
我没有传递任何查询,或者根据 connect() 文档,connect 只需要 1 kwarg 并且没有查询。
我不明白为什么会收到此错误。有人可以解释这个错误的原因和原因吗?
此外,似乎 pyodbc 有时会给出很多错误(根据我阅读的其他资源)。 sqlalchemy+pyodbc 有没有好的替代方案?我最终想将 connection
传递给 pd.to_sql
和 `pd.read_sql' 并且必须使用 odbc。
这是 SQLAlchemy 1 的问题。3.x 和 mysql+pyodbc://
已在 SQLAlchemy 1.4 中修复。