Mac 上使用 DBeaver 执行 Dump Database
本文整理的是在 macOS 上通过 DBeaver 对 MySQL/MariaDB 数据库执行整库导出的常用流程。
适用范围
- 操作系统:macOS
- 数据库类型:MySQL、MariaDB
- 工具:DBeaver
前提条件
DBeaver 的 Dump database 不是纯图形化导出,它依赖数据库原生客户端工具:
- MySQL 常用:
mysqldump - MariaDB 常用:
mariadb-dump
先在终端确认工具已经安装:
bash
which mysqldump
which mariadb-dump
如果能返回工具路径,说明本机已安装对应客户端。
一、配置 DBeaver 的本地客户端
如果执行导出时提示找不到 mysqldump 或 mariadb-dump,通常是 Client Home 配置错误。
操作步骤
- 打开 DBeaver。
- 进入
Database->Driver Manager。 - 选择当前连接实际使用的驱动:
MySQL- 或
MariaDB
- 点击
Edit。 - 找到
Local Client或Native Client配置项。 - 新增一个 Client Home。
- 将路径指向数据库客户端安装目录,而不是 JDBC 驱动目录。
- 保存配置。
说明
- 不要把 Client Home 指到
mysql-connector-java之类的 JDBC 驱动目录。 - 应当指向安装了
mysqldump或mariadb-dump的客户端目录。 - 如果文件选择窗口看不到目标目录,可按
Command + Shift + G手动输入目录路径进入。
二、执行整库导出
操作步骤
- 在 DBeaver 左侧数据库导航树中,右键目标数据库。
- 选择
Tools->Dump database。 - 选择导出范围:
- 整个数据库
- 或指定表
- 设置导出文件位置和文件名。
- 根据需要勾选导出参数,例如:
--routines--add-drop-table--extended-insert--skip-lock-tables
- 确认用户名、端口等连接信息无误。
- 点击开始执行导出。
三、推荐参数说明
常见参数含义如下:
--routines:导出存储过程和函数--add-drop-table:在建表语句前增加删表语句--extended-insert:使用批量插入语法,减小文件体积--skip-lock-tables:避免对表加锁,适合部分在线导出场景
是否使用这些参数,取决于你的恢复要求和业务运行状态。
四、常见问题排查
1. 提示找不到 mariadb-dump 或 mysqldump
典型原因:
- DBeaver 把
Client Home配成了 JDBC 驱动目录 - 本机未安装 MySQL/MariaDB 客户端工具
处理方式:
- 先用
which mysqldump或which mariadb-dump确认工具存在。 - 回到 DBeaver,重新配置
Local Client。 - 确保选中的是当前连接真实使用的驱动类型。
2. 导出结束后提示 Process failed (exit code = 143)
这类报错通常表示导出进程被终止,不一定代表 SQL 内容完全不可用。
建议排查:
- 先检查导出文件是否已经生成。
- 检查文件大小是否正常。
- 查看文件末尾内容是否完整。
- 若 DBeaver 反复报错,可直接改用命令行执行导出。
3. 文件选择窗口中找不到客户端目录
这是 macOS 中较常见的情况。
处理方式:
- 在目录选择窗口按
Command + Shift + G - 手动输入客户端目录
- 进入后完成选择
五、命令行备用方案
如果 DBeaver 图形界面导出不稳定,可直接使用命令行工具导出。
示例:
bash
mysqldump -u <用户名> -p --host=<主机> --port=<端口> <数据库名> > <导出文件名>.sql
如果需要导出存储过程等内容,可补充参数:
bash
mysqldump -u <用户名> -p --host=<主机> --port=<端口> --routines --add-drop-table --extended-insert --skip-lock-tables <数据库名> > <导出文件名>.sql
六、使用建议
- 小库或临时导出:可直接使用 DBeaver 图形界面
- 大库或重要备份:优先使用命令行
mysqldump/mariadb-dump - 备份完成后,建议抽样检查 SQL 文件头尾内容,避免拿到损坏文件
七、结论
在 macOS 上使用 DBeaver 执行 Dump database,关键点不在 JDBC 驱动,而在本地原生客户端工具配置是否正确。只要 Local Client 配置到正确的 MySQL/MariaDB 客户端目录,整库导出通常可以正常完成。