我们使用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”附近使用正确的语法
有人可以就此问题提出建议吗?
答案 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(或触摸现有工具)的情况,请尝试以下方法:
然后,假装你不只是用坚韧不拔的黑客来解决问题,并试图在去往咖啡馆的路上忘记它。它已经为我工作了几个月!
答案 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