MySQL:无法获取 mysqldump 版本

MySQL:无法获取 mysqldump 版本

我在 Ubunut 18 上使用 MySQL 工作台 6.3,使用的是 MySQL 服务器 8+。我需要从工作台备份我的数据库。当我单击时,Data export我选择方案并确保选中了所有需要的表。我选择要导出备份的文件路径(外部硬盘)。我单击export但收到错误消息:

无法获取 mysqldump 版本 Workbench 无法获取 mysqldump 版本。请验证日志以获取更多信息

请注意,我首先收到警告,说现有数据将被覆盖(我删除了旧备份,但我正在以相同名称保存新备份)。虽然旧文件不在那里,但我单击了“确定”。但备份仍然无法在两种类型(自包含 sql 文件或转储项目文件)中工作。

如何解决这个问题?

这个帖子有类似的问题。它建议转到Edit-> Preferences->Administration并将path to mysqldump toolmysqldump 的位置更改为。我尝试将其更改为:/usr/bin/mysqldump /usr/lib/mysql-workbench/mysqldump

每次更改后,我都会关闭并打开 MySQL 工作台。没有任何方法可以解决问题。

注意,这是定位的结果mysqldump

$ locate mysqldump
/etc/mysql/conf.d/mysqldump.cnf
/usr/bin/mysqldump
/usr/bin/mysqldumpslow
/usr/lib/mysql-workbench/mysqldump
/usr/share/man/man1/mysqldump.1.gz
/usr/share/man/man1/mysqldumpslow.1.gz

请注意,昨天导出成功了。除了关闭设备并启动它之外,我没有做任何更改。

请注意,我还升级了 MySQL 工作台和 MySQL 服务器。我没有删除旧的 MySQL 服务器,但当我使用以下命令检查版本时, SHOW VARIABLES LIKE "%version%"; 它看到了新版本:8.0.15

这是我看到的 MySQL 工作台路径:

在此处输入图片描述

另外,当我去/usr/bin/执行:mysqldump --version我得到:

mysqldump: [Warning] unknown variable 'loose-local-infile=1'.
mysqldump  Ver 8.0.15 for Linux on x86_64 (MySQL Community Server - GPL)

最后,loose-local-infile=1我输入了一个条目,/etc/mysql/my.cnf以便能够将本地文件中的数据加载到我的数据库中。

请帮我解决我的问题。我需要备份我的数据库以进行一些更改。

答案1

我遇到了这个问题,我用另一种方法解决了它。试试这个:

打开你的控制台:

mysqldump -u <user> -p <data_base_name> > /home/<user>/<did>/database-dump.sql

例如:

mysqldump -u root -p wp_site > /home/victor_santos/Desktop/database-dump.sql

之后,按进入并输入用户密码。

OBS:用户必须有权限访问和导出此数据库的数据。

答案2

这似乎是 MySQL Workbench 6.3 版本的问题。当我删除它并安装较新版本的 MySQL Workbench 8 时,问题消失了。

答案3

.my.cnf对我来说,它与文件有关/home/user/,因为当工作台试图获取文件的具体信息时,它已被覆盖(由使用相同配置的其他应用程序覆盖)。

运行 mysqldump --version ,如果它说:
mysqldump: [ERROR] Found option without preceding group in config file /home/user/.my.cnf at line X!
那么您可以将.my.cnf 文件重命名为 app_.my.cnf 以供以后使用。

运行 Workbench-它应该可以工作。

答案4

问题是由于/etc/my.cnf文件的权限问题。如果你mysql --version在控制台中运行,它会给出警告:

World-writable config file /etc/my.cnf is ignored

您要做的是更改该文件的权限:

sudo chmod 644 /opt/lampp/etc/my.cnf

修复权限应该可以停止出现警告。

相关内容