mysql导入sql文件报错的原因

发布时间: 2023-11-21 10:51 阅读: 文章来源:1MUMB306PS

转载请注明,原文地址:

http://www.lgygg.wang/lgyblog/2020/02/17/mysql%e9%97%ae%e9%a2%98%e9%9b%86window%e7%b3%bb%e7%bb%9f%e5%91%bd%e4%bb%a4%e8%a1%8c%e7%aa%97%e5%8f%a3%e6%89%a7%e8%a1%8c%e5%af%bc%e5%85%a5%e5%91%bd%e4%bb%a4%e6%8a%a5%e9%94%99%e8%a7%a3%e5%86%b3/

问题描述:在命令行窗口执行导入sql文件production_ssm.sql文件的时候,报错

ERROR 1366 (HY000) at line 39: Incorrect string value: ‘\x80\xE6\x9C\xAF\xE6\x9C...‘ for column ‘full_name‘ at row 1

问题发生的原因:原本以为是表的编码不是utf-8,但是我到数据库的WorkBench里查看,发现编码的确是utf-8,而且,我在WorkBench里直接执行插入命令(插入数据里包含中文),也能执行通过。而且表也是通过 production_ssm.sql文件里定义创建的,所以排除了表的问题。

然后我就猜测是命令行窗口的编码问题。网上查了一下,果然是命令行窗口的问题,右击命令行窗口上面的白色标题栏,点击属性

可以看到命令行窗口的默认编码是gbk

也可以执行CHCP命令,查看编码号,如下图,936和上图的GBK对应

所以只要修改命令行窗口的编码就能执行我们的导入命令了。下面是修改命令行窗口的命令

65001是utf8的代码,点击回车键之后,就会关闭上去窗口重新打开一个窗口,如下图

这个命令行窗口就是utf8编码,你可以右击该命令行窗口的标题栏,点击属性查看这个命令行窗口的编码是不是utf8,但是CHCP命令仅对当前这个命令行窗口有效,也就是说,如果你重新打开一个新的命令行窗口,那么它还是默认gbk编码。

•••展开全文