MySQL学习笔记:MySQL ERROR 1300 (HY000): Invalid utf8 character string
2016-04-15 13:24
801 查看
刚开始使用MySQL,版本为5.7.11(windows),今天导入本地的一个数据文件时,报错ERROR 1300 (HY000): Invalid utf8 character string '高中'。网上搜解决办法,在设置编码都为UTF-8的情况下,再次导入还是报相同错误。此时猜测可能是文件的问题,于是用“记事本”打开文件,搜索报错的“高中”,结果发现有“高中\中专”的记录,中文字符串中含有英文字符“\",尝试去掉“\”,保存后再次load
data local infile "E:/mysql/mydata" into table mytable;导入成功!
验证是否中英混搭导致load数据失败:建一张test表测试是否是中英混搭
mysql> create table test1 -> (a varchar(32) -> ) -> ;
test.txt
Chinese 中文 中文;Chinese
test1.txt
中文\Chinesetest2.txt
中文\中文
导入test.txt
mysql> load data local infile "E:/mysql/test.txt" into table test1; Query OK, 3 rows affected (0.08 sec) Records: 3 Deleted: 0 Skipped: 0 Warnings: 0
导入test1.txt
mysql> load data local infile "E:/201506-win/test1.txt" into table test1; Query OK, 1 row affected (0.08 sec) Records: 1 Deleted: 0 Skipped: 0 Warnings: 0导入test2.txt
mysql> load data local infile "E:/201506-win/test2.txt" into table test1; ERROR 1300 (HY000): Invalid utf8 character string: '中文'经过这几个测试发现,中英文字符不存在问题,可以正常插入,导致失败的原因是转义字符“\”后面为中文的问题,像“中文\中文”这样,后面为英文,即“中文\Chinese”是可以正常使用的,插入的记录“\”也没有显示。
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复