我正在使用由其他人管理的网络服务器。该服务器上的版本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
。
我要求我的系统管理员这样做,并得到了一般的无帮助的答复。我怀疑我能否说服他们进行升级。目前无法选择迁移到新服务器。
有什么方法可以在我的主目录中下载并编译本地版本(无需编译大量依赖项)?如果是这样,您介意给我指出正确的方向吗?
谢谢!
答案1
您的链接还包含最快的解决方案:
安德烈·时装 • 3 年前
您好,我在尝试 mysqldump 5.6 数据库以降级时遇到了同样的问题。我采取了稍微不同的方法,因为我没有安装 mysql-client5.6
我只是复制了 /usr/bin/mysqldump,vi -b mysqldump 查找 SET OPTION(使用 '/' 命令),用 # 替换第一个字符,以便读取“#ET OPTION”(使用 'r'命令)保存并运行我的转储(ESC:x)
现在你有了一个可以连接mysql5.6并转储数据的mysqldump版本
对我来说就像一个魅力
答案2
首先检查服务器的硬盘。如果他们正在运行较新版本的 MySQL,那么正确的版本mysqldump
确实应该在那里...也许他们只是在搜索路径中没有它,或者旧版本在搜索序列中位于较高位置。
否则...必须从类似的机器上找到可执行文件的副本,然后通过 sftp 传输它。在 tarball 中有预先构建的二进制文件官方下载网站根据需要查找“Linux 通用压缩 TAR”32 或 64 位版本。不需要编译任何东西或“安装”任何东西。该文件将位于该bin/
目录中。这应该就是您所需要的。我有理由确信它是完全独立的。
或者从您的机器上复制它。它们非常方便携带。
而且...您确实知道不需要mysqldump
在服务器计算机上运行,对吧?它并不关心它在哪里运行。它不读任何事物从服务器的硬盘驱动器。它使用普通的客户端连接,通过本地 unix 套接字或 TCP 端口 3306,并且所有数据都通过该连接流动...这...如果这不是直接向您开放,您通常可以设法通过使用您的 ssh shell 会话免费进行隧道骑行。