mysql插入数据java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x94\x97 B...‘ for column 问题修复

问题原因


原因是Emoji表情或者某些特殊字符是4个字节,而MySQL的utf8编码最多3个字节,所以数据插不进去。

这里可以看到编码确实不对

解决方案


方案1
在mysql的安装目录下找到my.ini,作如下修改: 

[mysqld]

character-set-server=utf8mb4

[mysql]

default-character-set=utf8mb4

修改后重启Mysql    sudo service mysql restart

方案2
重建表,修改表编码为utf8mb4
CREATE TABLE `table_xxxx` (
  `id` int NOT NULL AUTO_INCREMENT,
  `input` text,
  `output` text,
  `createtime` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

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