1.错误背景
设计MySQL数据时设置数据编码 charset=utf8,插入数据全为英文时没有任何报错,查询、创建函数、视图都正常,当插入含中文字符数据时就会报错,一次报2个错:
报错 1:
ERROR 1366 (HY000): Incorrect string value: ‘\xA4\x95’ for column ‘name’ at row 1
报错 2:
ERROR 1406 (22001): Data too long for column ‘name’ at row 1
插入语法、格式都反复检测过,没有问题,字符串设置长度也足够长。
2.排查错误
通过:status 查看数据库状态,如下图:
发现他们4者的字符编码格式不一样:
Server characterset: utf8mb4
Db characterset: utf8
Client characterset: gbk
Conn. characterset: gbk
3.解决办法
3.1 方法一:
将Client和Connection的字符编码格式改成了:utf8
mysql> set character_