Python 使用SQLAlchemy和pymysql,如何设置连接以使用utf8mb4?

Python 使用SQLAlchemy和pymysql,如何设置连接以使用utf8mb4?,python,mysql,sqlalchemy,pymysql,utf8mb4,Python,Mysql,Sqlalchemy,Pymysql,Utf8mb4,我发现(困难的方法)只有3个字节。一些研究表明,我可以通过更改表来利用排序规则并获得UTF应该包含的完整4字节来解决这个问题 我已经这样做了。我的数据库、表和列都已ALTERed以使用此字符集。但是,如果数据的unicode代码点大于U+FFFF,我仍然会收到此消息: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='" 我发现我有以下

我发现(困难的方法)只有3个字节。一些研究表明,我可以通过更改表来利用排序规则并获得UTF应该包含的完整4字节来解决这个问题

我已经这样做了。我的数据库、表和列都已
ALTER
ed以使用此字符集。但是,如果数据的unicode代码点大于U+FFFF,我仍然会收到此消息:

Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='"
我发现我有以下设置:

> show variables like '%collation%';

collation_connection  utf8_general_ci
collation_database    utf8mb4_general_ci
collation_server      utf8mb4_general_ci
通过更改
my.cnf
设置了
排序规则\u服务器。我的问题是,我如何更改连接?我目前使用SQL Alchemy和pymysql连接到数据库,如下所示:

connect_string = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(DB_USER, DB_PASS, DB_HOST, DB_PORT, DATABASE)
engine = create_engine(connect_string, convert_unicode=True, echo=False)
session = sessionmaker()
session.configure(bind=engine)

通过SQL Alchemy连接时,如何将
utf8\u general\u ci
更改为
utf8mb4\u general\u ci
?将
connect\u字符串
更改为使用
charset=utf8mb4

connect_string = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8mb4'.format(DB_USER, DB_PASS, DB_HOST, DB_PORT, DATABASE)

是否可以稍后将
数据库
传递到
引擎