mysql数据库插入emoji报错Incorrect string value

INSERT INTO auto_message (id, message, ext) VALUES
(1, '你好呀', 'test'),

在使用以上sql命令给数据表插入一条带emoji的数据时报错:

ERROR 1366 (HY000): Incorrect string value: '\xF0\x9F\xA4\xAB' for column 'message' at row 1

最开始,我发现复制的表情,粘贴到终端后变为了“\U+1F60A

认为是终端的编码字符集有问题,各种设置后无效。

最后解决办法很简单,在连接mysql的命令上加上--default-character-set=utf8mb4

mysql -u your_username -p --default-character-set=utf8mb4

虽然被粘贴到终端后还是会被转义,但可以正常插入,查询结果也是正确的。

你可能感兴趣的:(linux,数据库,mysql)