我在 Ubunut 18 上使用 MySQL 工作台 6.3,使用的是 MySQL 服务器 8+。我需要从工作台备份我的数据库。当我单击时,Data export
我选择方案并确保选中了所有需要的表。我选择要导出备份的文件路径(外部硬盘)。我单击export
但收到错误消息:
无法获取 mysqldump 版本 Workbench 无法获取 mysqldump 版本。请验证日志以获取更多信息
请注意,我首先收到警告,说现有数据将被覆盖(我删除了旧备份,但我正在以相同名称保存新备份)。虽然旧文件不在那里,但我单击了“确定”。但备份仍然无法在两种类型(自包含 sql 文件或转储项目文件)中工作。
如何解决这个问题?
这个帖子有类似的问题。它建议转到Edit
-> Preferences
->Administration
并将path to mysqldump tool
mysqldump 的位置更改为。我尝试将其更改为:/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
修复权限应该可以停止出现警告。