使用MySQL的频率较低,今天就遇到这么一个报错:
General error: 1366 Incorrect string value: 'xF0x9Fx91x87<p...' for column 'content' at row 1
查了以下,是MySQL存储汉字用了utf8,我看了一下库,是utf8,而且也是推荐的mb4,但是表的排序,默认是:utf8mb3_general_ci
这就很离谱,于是改了一下表的排序字符集为:utf8mb4_unicode_ci
phpmyadmin可以直接改,也可以使用语句:
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
改了后,报错变化,报错变为:
[10501]SQLSTATE[HY000]: General error: 3988 Conversion from collation utf8mb3_general_ci into utf8mb4_bin impossible for parameter
就很无语。应该是没有set names吧
然后在服务端改了一下配置
在my.cnf的mysqld节点加入了以下配置代码:
character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4'
重启数据库后,就正常了。
------------正 文 已 结 束, 感 谢 您 的 阅 读 (折雨的天空)--------------------
转载请注明本文标题和链接:《General error: 1366 Incorrect string value: 'xF0x9Fx91x87<p...' for column 'content' at row 1》
发表评论