无法在 Windows 机器上使用 sqlalchemy 连接到本地 mysql 数据库

Posted

技术标签:

【中文标题】无法在 Windows 机器上使用 sqlalchemy 连接到本地 mysql 数据库【英文标题】:Cannot connect to a local mysql db with sqlalchemy on windows machine 【发布时间】:2018-10-13 20:31:00 【问题描述】:

我正在尝试使用 sqlalchemy 连接到我的 Windows 机器上的本地 mysql 数据库。它适用于 pymysql,但不适用于 sqlalchemy。

代码 sqlalchemy:

engine = create_engine('mysql+mysqldb://root:mypass@localhost/classicmodels')
engine.connect()

给出错误:

OperationalError: (_mysql_exceptions.OperationalError) (1193, "Unknown system variable 'tx_isolation'")

工作代码,使用 pymysql:

connection = pymysql.connect(host='localhost',
                             user='root',
                             password = 'mypass',
                             db = 'classicmodels')

cursor = connection.cursor()

cursor.execute('select * from customers')
mydata = cursor.fetchall()
mydata = pd.DataFrame(list(mydata))
mydata.head(5)

【问题讨论】:

您正在将 MySQLdb 驱动程序与 SQLA 一起使用。如果你也使用 pymysql 怎么办 (mysql+pymysql://...)? 谢谢,但这也不起作用 您使用的是什么版本的 MySQL 等?还请包括完整的回溯,而不仅仅是错误消息。 【参考方案1】:

我遇到了涉及 tx_isolation 的类似错误。

sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1193, "Unknown system variable 'tx_isolation'")

这是由于使用了旧版本的 SQLAlchemy。

pip install --upgrade SQLAlchemy

我正在运行 v1.0.15,升级到 v1.2.9 为我修复了错误。我也在使用上面提到的mysql+pymysql 连接设置。

【讨论】:

我从 1.1.13 升级到 1.2.15 并且已经/修复了这个错误。【参考方案2】:

您的 sqlalchemy 版本是什么?尝试使用最新的,因为8.0版本的mysql已经贬低了'tx_isolation'。

【讨论】:

以上是关于无法在 Windows 机器上使用 sqlalchemy 连接到本地 mysql 数据库的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 VS Code 在 Windows 机器上为 linux 构建 .Net core 3.0 项目

无法在 Windows 7 机器上的 Microsoft Visual C++ 2010 中运行 OpenCV

在 Windows 7 机器上编写/编译的 .NET 4 程序无法在 XP 上运行

无法在 windows 机器上安装 sasl-0.1.3 python 包

在 Windows 机器上运行 Postgresql 11 时导致“更多无法识别...”错误的原因是啥?

无法在 Windows 机器上运行现有的 java Play Framework 项目