当我尝试将 MySQL 数据转储恢复到不同的服务器和不同的 MySQL 版本时出现以下错误...
错误 1064 (42000),位于第 14165 行:您的 SQL 语法有误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在第 1 行“m told everyone.”< 附近使用的正确语法
转储文件的来源...
- Linux 服务器
- MySQL 版本 5.1.22
- mysqldump -u 用户名 -p 数据库名称 | gzip > DUMPname.sql.gz
目的地 ...
- Linux 服务器
- MySQL 版本 5.1.35
- cat DUMPname.sql.gz | gunzip | mysql -u 用户名 -p 数据库名称
此转储将在原始服务器上正常恢复。
它很大(25GB),这使我很难研究转储文件。
有什么建议 ???
谢谢杰夫
答案1
在我看来,这似乎是未转义的撇号错误。只需找到它,修复它,然后继续下一个,并希望不会有太多错误。
答案2
您可以尝试--skip-opt --complete-insert
在转储文件中每行插入一条插入语句。然后,您应该能够使用 grep 和 sed 找到并删除有问题的行。
答案3
可以通过调整以下两个 mysqldump 选项中的一个或两个来修复此问题。对导出和导入使用相同的选项值。
- FIELDS ENCLOSED BY(默认值 = ' - 这似乎是问题所在)
- 字段转义(默认 = \)