恢复 MySQL 数据转储时出错

恢复 MySQL 数据转储时出错

当我尝试将 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 选项中的一个或两个来修复此问题。对导出和导入使用相同的选项值。

  1. FIELDS ENCLOSED BY(默认值 = ' - 这似乎是问题所在)
  2. 字段转义(默认 = \)

MySQL mysqldump 文档

相关内容