这是字符编码问题
1.网上有一种解决方法是:
直接将数据库的编码改为:utf8mb4_general_ci,同时Python代码里,连接数据库时用
charset="utf8mb4"
不过,,这种方法对我的程序不起作用。。
2.另一种方法(有效):
执行sql语句: ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4;
再将Python代码里,连接数据库时用charset="utf8mb4" 真棒!!
上面两种方法,其实是有区别的。
采用方法一,如果遇到某个列字符集转换完后字节数超限了,会提示错误。
而采用方法二,如果遇到某个列字符集转换完后字节数超限了,则会将这个列数据类型转换成可以容纳更大长度的类型,比如从 TEXT 转成 LONGTEXT 等。
编码区分可参考:
What is the difference between utf8mb4 and utf8 charsets in MySQL?