java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xBB' for column 'nickName' at row 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1094)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4226)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4158)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)
java在插入数据mysql的时候字节过长活导致失败。
总结解决方法以下几点:
1、java的数据库连接url配置为 jdbc:mysql://[ip]:[prot]/[dataBase]?useUnicode=true&characterEncoding=utf8&autoReconnect=true&serverTimezone=Asia/Shanghai&useSSL=false
2、设置数据库编码格式为utf8mb4
3、服务器中的mysql配置也要设置utf8mb4,linux通常在 /etc 下的 my.cnf
配置上这一段
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
然后重启mysql服务即可:service mysql restart