恢复MySQL数据转储时出错

尝试将MySQL数据转储还原到其他服务器和不同的MySQL版本时出现以下错误…

错误1064(42000)在行14165:您的SQL语法中有错误; 检查与您的MySQL服务器版本相对应的手册,以便在'm'告诉everyone'附近使用正确的语法

转储文件的来源…

  • linux服务器
  • MySQL v 5.1.22
  • mysqldump -u UserName -p DBname | gzip> DUMPname.sql.gz

目的地…

  • linux服务器
  • MySQL v 5.1.35
  • cat DUMPname.sql.gz | gunzip | mysql -u UserName -p DBname

这个转储将在原始服务器上恢复正常。

这是大(25演出),这使我很难研究转储文件。

有什么build议么 ???

谢谢杰夫

看起来像一个非转义的撇号错误给我。 find它,修复它,然后继续下一个,希望没有太多。

你可以试试--skip-opt --complete-insert ,它会在转储文件中每行放入一个插入语句。 然后你应该能够find并删除grep和sed的违规行。

可以通过调整下面两个mysqldump选项中的一个或两个来解决这个问题。 使用相同的选项值进行导出和导入。

  1. FIELDS ENCLOSED BY(默认=' – 这似乎是问题)
  2. FIELDS ESCAPED BY(默认= \)

MySQL mysqldump文档