python utf8mb4_使用Windows mysqlpython“无法初始化字符集utf8mb4”

在Windows上使用Python2.7、MySQLdb 1.2.5和sqlalchemy 1.0.9时,尝试连接设置为utf8mb4的MySQL服务器遇到错误。错误信息显示不能初始化字符集utf8mb4。问题可能源于Windows客户端的MySQLdb库不支持utf8mb4。已尝试不同方式安装MySQLdb,但未能解决问题。在Ubuntu上连接同一服务器则无此问题,暗示问题可能出在Windows客户端。
摘要由CSDN通过智能技术生成

尝试从一个

Windows 7客户端,通过Python2.7+MySQLdb 1.2.5+sqlalchemy 1.0.9。这是最近将服务器的默认字符集更改为utf8mb4的结果。服务器正在运行MySQL 5.5.50。

我是这样联系的:DB_ENGINE = sqlalchemy.create_engine("mysql+mysqldb://{user}:{pass}@{host}:{port}/{database}?charset=utf8mb4".format(**DB_SETTINGS))

Session = sqlalchemy.orm.sessionmaker(bind=DB_ENGINE)

错误是:File "C:\Applications\Python27\lib\site-packages\sqlalchemy\engine\default.py", line 385, in connect

return self.dbapi.connect(*cargs, **cparams)

File "C:\Applications\Python27\lib\site-packages\MySQLdb\__init__.py", line 81, in Connect

return Connection(*args, **kwargs)

File "C:\Applications\Python27\lib\site-packages\MySQLdb\connections.py", line 221, in __init__

self.set_character_set(charset)

File "C:\Applications\Python27\lib\site-packages\MySQLdb\connections.py", line 312, in set_character_set

super(Connection, self).set_character_set(charset)

sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (2019, "Can't initialize character set utf8mb4 (path: C:\\mysql\\\\share\\charsets\\)")

服务器的my.cnf包含以下内容:init_connect = 'SET collation_connection = utf8mb4_unicode_ci'

init_connect = 'SET NAMES utf8mb4'

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

skip-character-set-client-handshake

从Ubuntu客户机连接到数据库没有问题,所以我怀疑问题出在Windows客户机上,而不是服务器的配置上。

MySQL文档表明,错误消息可能是由于正在编译的客户端不支持多字节字符集:

但是,由于这是Windows,我只是下载客户端,无法控制其编译标志。

我试过用多种方式安装MySQLdb:从dev.MySQL.com下载并安装MySQL Connector/Python.msi

从pypi下载并安装MySQLdb 1.2.5.exe

在Windows命令提示符下运行“pip install mysql python”

所有这些结果都会导致MySQLdb库似乎无法处理utf8mb4字符集。

任何帮助都将不胜感激!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值