MySQL 5.6.5-m8转储失败

时间:2012-06-25 06:47:20

标签: mysql ubuntu mysqldump

我们使用MySQL 5.6.5-m8开发版 当我们尝试转储数据库时,我们收到以下错误:

  

user @ ubuntu-11:〜$ mysqldump -u root -p my_schema> dump.sql
  输入密码:
  mysqldump:无法执行'SET OPTION SQL_QUOTE_SHOW_CREATE = 1':您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第1行(1064)的“OPTION SQL_QUOTE_SHOW_CREATE = 1”附近使用正确的语法

有人可以就此问题提出建议吗?

6 个答案:

答案 0 :(得分:11)

MySQL 5.6停止并删除了对SET OPTION语法的支持,但即使是最新的mysqldump 5.5.30(在撰写本文时)仍然会生成SET OPTION。换句话说,mysqldump 5.5无法从MySQL 5.6服务器转储。

请参阅:http://bugs.mysql.com/bug.php?id=67507

最初的问题可能是5.6.5-m8的临时问题,但我认为发现此问题的人可以使用这些信息。

答案 1 :(得分:4)

我有这个问题。事实证明我使用的mysqldump客户端是服务器后面的几个版本,并且使用了过时的语法。检查你的路径中是否有较旧的二进制文件 - 可能在/ usr / bin / - 并在与当前正在执行的mysql二进制文件相同的位置查找较新的二进制文件 - 可能是/ usr / local / mysql。 / p>

答案 2 :(得分:3)

如果您处于无法升级mySQL(或触摸现有工具)的情况,请尝试以下方法:

  • 查找 mysqldump (我的位于/ usr / bin / mysqldump)
  • 获取它的副本并将其放入十六进制编辑器(我使用HxD)
  • 以纯文本(ANSI,每个字节1个字节)字符串查找“SET OPTION SQL_QUOTE_SHOW_CREATE”,并用空格(0x20十六进制)清空“OPTION”字节
  • 请改用 mysqldump 的修改版本!

然后,假装你不只是用坚韧不拔的黑客来解决问题,并试图在去往咖啡馆的路上忘记它。它已经为我工作了几个月!

答案 3 :(得分:2)

得到了同样的错误。我在之前的MySQL 5.1安装中留下了/ usr / bin中的二进制文件。我验证了二进制文件也在我的MySQL 5.6 bin文件夹中,然后我吹走了/ usr / bin版本。在这之后,mysqldump正常运行。

答案 4 :(得分:1)

+1 Burhan Khalid的回答

使用--force运行它,将其输出到dbdump.sql,为任何不兼容的语句编辑它。

变通方法命令示例:

mysqldump -uusername --ppassword --force dbname> dbdump.sql

编辑你的dbdump.sql以修复跨mysql版本的任何不兼容的语句。 对我来说,它是时间戳表达式:从5.6默认的'CURRENT_TIMESTAMP'到5.5中的默认CURRENT_TIMESTAMP。

然后导入dbdump.sql或做任何你需要做的事都没关系。

答案 5 :(得分:0)

Workbench未安装在与MYSQL相同的位置。 Workbench随其安装了sqldump IN ADDITION的OWN副本到随MySQL安装的副本。

WORKBENCH“C:\ Program Files \ MySQL \ MySQL Workbench CE 5.2.47 \ sqldump.exe”= 5.5.16 MYSQL“C:\ Program Files \ MySQL \ MySQL Server 5.6 \ bin \ sqldump.exe”= 5.6.10。

我将MYSQL版本复制到我的工作台目录,现在一切正常:)

希望这有帮助!这是Link