mysql 在新电脑上导入,出现错误:ERROR at line 4019: Unknown command '\''.
在新电脑上导入,出现错误:
C:\Program Files\MySQL\MySQL Server 5.7\bin>mysql -u root -p < E:\mysql_full_backup.sql
Enter password: *************
ERROR at line 4019: Unknown command '\''.
报错原因
Unknown command '\'' 典型三种情况:- 备份文件路径 / 文件名含中文、空格、特殊符号;
- SQL 文件是 Windows 换行编码、导出时编码错乱,单引号
'解析异常; - 导出 / 拷贝过程文件损坏、文件编码非 UTF-8;
- CMD 重定向
<导入对特殊字符兼容性差。
方案一:改用 source 命令导入(最稳,优先试) 【不行,仍然错误】
- 进入 bin 目录登录 MySQL
cmd
mysql -u root -p
输入密码进入 mysql 命令行;
- 执行 source,路径用正斜杠 /
sql
source E:/mysql_full_backup.sql;
注意:必须分号结尾,路径斜杠写/不要写\
导入完成再退出:
exit;方案二:修复文件编码问题(上面还报错再操作)
- 右键
E:\mysql_full_backup.sql→ 打开方式 → 记事本; - 左上角【文件】→【另存为】;
- 底部编码选择:UTF-8,保存覆盖原文件;
- 重新用
source导入。
方案三:导出时加编码参数,重新备份(当前文件损坏时)
回旧电脑,重新导出,指定字符集避免乱码:
cmd
mysqldump -u root -p --all-databases --routines --triggers --events --single-transaction --default-character-set=utf8mb4 > D:\mysql_full_backup.sql
拷贝新电脑再导入。
额外避坑点
- SQL 文件不要放在桌面、中文文件夹(如
E:\数据库备份\xxx.sql),纯英文路径; - 拷贝文件用 U 盘 / 压缩包,不要微信 / QQ 传输,容易损坏字符;
- 5.7 数据库不要混用记事本默认 ANSI 编码保存备份,极易出现引号解析报错。
补充:如果 source 还是报单引号错误
打开 sql 文件,跳到报错第 4019 行,查看该行是否有乱码、残缺引号,大概率是传输过程文件截断损坏,只能重新完整导出一份备份。
=================================
如何在不打开文件的情况下,知道一个文本文件的字符编码类型?

下面方案可行,可用
方案 1:命令行导入强制指定字符集(最优先,替代之前普通 cmd 导入)
进入 MySQL 5.7 bin 目录,执行这条完整命令,必须加 --default-character-set=utf8
cmd
mysql -u root -p --default-character-set=utf8 < E:\temp.sql
输入密码直接导入。
原理:强制客户端用 utf8 读取文件,不会把转义单引号\'解析成非法命令。

浙公网安备 33010602011771号