如果使用了 mysql-connector-python 8.0.17
,而你的mysql服务器并不是8.0,那么你可能会遇到这个错误。之前我们的解决方法是把版本退回到8.0.16,现在官方给出了真正的原因。
解决办法是把连接串的参数charset=utf8mb4
改为charset= utf8mb4_general_ci
。原因是从8.0.17开始,默认的utf8mb4其实会使用utf8mb4_0900_ai_ci 字符集编码,虽然mysql 8.0之前的服务器并不支持这个最新的编码。