我的本地开发环境目前使用 MySQL Server 5.5。但是,我的一个客户主机决定将其服务器升级到 5.6。我使用 mysqldump 通过 ssh 远程同步我的客户数据库。我还有其他客户使用 MySQL Server 5.5。
我正在同步的数据库不使用任何特定的 5.6 功能(所有 WordPress 都与 5.5 完全兼容)。为了与 5.5 和 5.6 上的两个客户组一起工作,是否可以将我的本地开发环境升级到 MySQL 5.6,然后使用 5.6 客户端工具同步 5.5 数据库?
仅供参考:无法使用我的 5.5 客户端工具同步 5.6 数据库,因为在尝试这样做时我收到以下错误:
mysqldump: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_QUOTE_SHOW_CREATE=1' at line 1 (1064) (Wordmove::ShellCommandError)
需要澄清一些附加信息。我知道 5.6 中引入了一些与 5.5 不兼容的表方案功能。但是,这些功能是否会在升级时自动应用于 5.5 表,或者将 5.5 数据库导入 5.6 数据库是否基本上仍然与 5.5 完全兼容,直到 5.6 中的新功能在其上被积极使用。
答案1
这是由于 MySQL Server 5.6 中的变化而导致的错误:SET OPTION
MySQL 5.5 上的 mysqldump 中使用了 unsupport 关键字。
您可以查看此票以了解更多信息:https://bugs.mysql.com/bug.php?id=67507
为了解决这个问题,我认为你可以采取以下解决方案之一:
- 将 mysqlclient (mysqldump) 升级到 5.6
- 手动方式:在客户端编辑文件 mysqldump(使用 Mysql 5.5)
cp /usr/bin/mysqldump /root/mysqldump
vim -b /root/mysqldump
寻找 SET OPTION(使用‘/’命令)
注释(或删除)此命令/行
保存文件
改用 /root/mysqdump
希望这对你有用