插入mysql出现 Incorrect string value错误的解决方法

问题描述 

        这可真是个坑爹的问题,我的数据库使用的也是UTF-8,所以中文应该是没问题的,后发现用户传递了一个?字,这个字可能由于字体库已经将其弃用,导致查询不到,识别为表情了,所以转为4个字节,而UTF-8是3个字节,所以出错了。

 

解决方法

修改MySQL的配置文件
windows 查找my.ini
linux查找my.cnf
做如下修改:
[mysqld]
character-set-server=utf8mb4

[mysql]
default-character-set=utf8mb4

然后将对应的表的字符集也做修改
alter table TABLE_NAME convert to character set utf8mb4 collate utf8mb4_bin;

 

注意事项

由于修改了表结构,会对以前的数据有影响,而且我们是将内容从3个字节的字符集变为4个字节的字符集,所以需要
对表的列进行长度的扩容。

 

你可能感兴趣的:(实际业务,工作问题,mysql)