mysql 5.7.9 插入数据异常,异常如下

2025-03-24 00:35:14
推荐回答(5个)
回答1:

在 /etc/my.cnf 文件里加上如下:

sql_mode='NO_ENGINE_SUBSTITUTION',然后重启Mysql服务就可以了。

一、异常信息:

errorCode:1366 Caused by: java.sql.SQLException: Incorrect string value: '\xE7\xAE...' for column 'description' at row 1

二、异常原因:

(1)、字符集冲突,mysql insert入库的时候,由于插入数据编码与数据库字段字符集不一致,导致数据无法插入。

(2)、在mysql数据库中执行show character set,可以看到不同的字符集的最大长度不同。如果执插入utf8编码数据,数据库表中字段字符集是latin。(查询字段字符集方法:show full columns from user;),如果最大长度为3的utf8字符集存储到最大长度为1的latin数据库字段中,数据会被截断,无法正常插入,导致异常。

回答2:

在 /etc/my.cnf 文件里加上如下:
sql_mode='NO_ENGINE_SUBSTITUTION'
然后,重启Mysql服务就可以解决了!

祝你好运!

回答3:

在my.cnf 里面设置
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
在sql_mode 中去掉only_full_group_by
解决问题!

回答4:

在Linux /etc/my.cnf 中是这样写 sql_mode=NO_ENGINE_SUBSTITUTION 才不会出错

回答5:

http://www.tuicool.com/articles/nmAjQfZ