You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SQLAlchemy与MySQL-Python设置charset=utf8mb4时遇初始化错误如何解决?

解决SQLAlchemy + MySQL-Python连接utf8mb4报错的问题

这个问题我之前也碰到过,主要是因为你用的MySQL-Python(即mysqldb)1.2.5版本太老旧,对utf8mb4字符集的支持不完善,再加上可能MySQL的字符集配置没匹配到位导致的。给你两个解决方案,优先推荐第一个:

方案一:替换为PyMySQL驱动(更推荐)

MySQL-Python已经停止维护多年了,PyMySQL是纯Python实现的MySQL驱动,对utf8mb4支持更好,操作也简单:

  1. 先卸载旧的MySQL-Python:
pip uninstall MySQL-Python
  1. 安装PyMySQL:
pip install pymysql
  1. 修改你的SQLAlchemy连接字符串,换成mysql+pymysql驱动:
engine = create_engine('mysql+pymysql://root:123456@localhost:3306/tianchi?charset=utf8mb4')

这样基本就能解决问题,因为PyMySQL对utf8mb4的支持是原生的,不需要额外复杂配置。

方案二:修复MySQL-Python的配置(不推荐,仅作备用)

如果你必须保留MySQL-Python,那需要先确保MySQL的配置文件设置正确:

  1. 找到MySQL的配置文件(Windows下是my.ini,通常在MySQL安装目录或C:\ProgramData\MySQL\MySQL Server 5.7\my.ini路径下)
  2. 修改以下几个部分:
[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
  1. 重启MySQL服务,然后再尝试用原来的连接字符串连接。

不过要注意,即使配置了MySQL,MySQL-Python 1.2.5本身对utf8mb4的支持还是有局限性,比如某些特殊字符的处理可能会出问题,所以还是优先建议换成PyMySQL。

内容的提问来源于stack exchange,提问作者hyjal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:33:04