Mysql无法插入中文:ERROR 1366 (HY000): Incorrect string value: '\xE7\xAC\xAC\xE5\x8D\x81...'

问题:

使用source file.sql 将数据导入mysql,但是其中有字段的值为中文,出现以下报错。
Mysql无法插入中文:ERROR 1366 (HY000): Incorrect string value: '\xE7\xAC\xAC\xE5\x8D\x81...'_第1张图片

解决方法:

1、首先使用 show create table table_name 查看该表 的CHARSET:
Mysql无法插入中文:ERROR 1366 (HY000): Incorrect string value: '\xE7\xAC\xAC\xE5\x8D\x81...'_第2张图片可以看出默认的 CHARSET 为 latin1,使用下述指令修改默认的 CHARSET:

alter table table_name CHARSET=utf8;

执行成功后,在通过show create table table_name 查看,发现该表的默认 CHARSET 已经修改为 utf8。
Mysql无法插入中文:ERROR 1366 (HY000): Incorrect string value: '\xE7\xAC\xAC\xE5\x8D\x81...'_第3张图片2、继续使用 source file.sql 导入数据,但是仍然报同样的错,继续使用 show create table table_name 查看,发现插入数据为中文的字段的默认 CHARSET 还是为latin1。
Mysql无法插入中文:ERROR 1366 (HY000): Incorrect string value: '\xE7\xAC\xAC\xE5\x8D\x81...'_第4张图片使用下述指令,修改该字段的默认 CHARSET:

ALTER TABLE table_name CHANGE c1 c1 VARCHAR(20) CHARACTER SET utf8;

3、修改后,在执行插入数据,成功。

你可能感兴趣的:(Mysql,学习)