我正在使用以下命令运行脚本文件:
mysql -u root -p MyTable < questions.sql
收到以下错误:
ERROR 1366 (HY000) at line 8358: Incorrect string value: '\xD7 4 = ...' for column 'choiceA' at row 1
当我尝试调试时,我发现发生了这个错误,因为我有像乘法和除数学符号这样的特殊字符。在做了一些谷歌搜索后,我发现我的数据库的字符编码应该是UTF-8,我也改变了,但仍然得到相同的错误。
我有点惊讶的是,如果我尝试在SQL提示符中手动执行相同的查询,它工作正常!!这意味着我的数据库编码是正确的。
我无法弄清楚问题出在哪里,并寻求建议。
答案 0 :(得分:0)
questions.sql文件必须是UTF-8。使用此编码保存文件。
答案 1 :(得分:0)
经过一些调查后,我找到了上述问题的解决方案。
在我的情况下,我是从cvs文件生成sql,不知何故,生成的sql文件中出现了一些特殊字符,并且正在停止mysql将数据加载到显示上述错误的数据库中。
正如我上面所说,SQL工作台能够正确解析sql文件,并能够将数据加载到DB中。所以,我首先将数据加载到数据库中,然后使用Server&gt; Workbench中存在数据导出功能,我将整个数据导出到sql文件中。我能够使用以下命令行成功执行工作台生成的sql文件:
mysql -u root -p MyTable < questions.sql