我正在使用一个由其他人管理的else服务器。此服务器上的mysqldump
版本从2011年开始:
$ mysqldump --help mysqldump Ver 10.13 Distrib 5.1.63, for debian-linux-gnu (x86_64) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
因此,当我尝试进行数据库转储时,我得到了以下输出:
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)
根据此链接,我需要升级mysqldump
。
我让我的系统管理员去做,得到了一般的没有帮助的回答。我怀疑我能否说服他们进行升级。目前,移动到新服务器并不是一种选择。
有什么方法可以在我的主目录中下载并编译本地版本(而不必编译大量依赖项)?如果是的话,你介意帮我指出正确的方向吗?
谢谢!
发布于 2016-12-11 22:28:58
您的链接还包含了最快的解决方案:
三年前,我遇到了同样的问题,为了降低评级,我尝试将mysqldump的5.6数据库抛出。我采取了一种稍微不同的方法,因为我没有安装mysql的特权--client5.6我只做了/usr/bin/mysqldump的副本,vi -b mysqldump查找SET选项(使用'/‘命令)将第一个字符替换为#,以便读取"#ET选项“(使用'r’命令)保存并运行我的转储( ESC :x ),现在您可以连接和转储来自mysql5.6的数据,就像我的魅力一样。
发布于 2016-12-11 23:49:24
先检查服务器的硬盘。如果他们运行的是新版本的MySQL,正确的mysqldump
版本应该在那里.也许他们只是在搜索路径中没有它,或者旧的在搜索序列中更高。
否则..。从类似的机器中找到一个可执行文件的副本,并将其发送到上面。官方下载网站上的tarball中有预构建的二进制文件,根据需要查找"Linux通用压缩TAR“32或64位版本。不应该需要编译任何东西或“安装”任何东西。该文件将位于bin/
目录中。那应该是你所需要的。我相当肯定它是完全独立的。
或者从你的机器上复制。它们非常容易携带。
但同时..。您知道没有必要在服务器机器上运行mysqldump
,对吗?它不在乎它在哪里运行。它不会从服务器的硬盘中读取任何东西。它使用普通的客户端连接,通过本地的unix套接字或以其他方式连接到TCP端口3306,而所有的数据都通过该连接.哪个..。如果这不是直接向您开放的,您通常可以通过ssh shell会话免费地在隧道上传输。
https://unix.stackexchange.com/questions/329676
复制相似问题