Views: 47
Export configuration(导出配置)
这是 DBeaver 调用 mysqldump 工具进行数据库备份时的设置界面。
⚙️ Settings(设置选项)
| 选项 | 勾选状态 | 含义 |
|---|
| No CREATE statements | ❌ 未勾选 | 默认会在备份文件中生成 CREATE TABLE/CREATE DATABASE 等建表语句。如果勾选,则不生成这些语句,只导出数据。 |
| Compressed | ❌ 未勾选 | 是否对输出文件进行压缩(生成 .gz 或 .zip 格式)。不勾选则生成纯文本 .sql 文件。 |
| Add DROP statements | ✅ 已勾选 | 在每个表/视图/存储过程创建前,先执行 DROP TABLE IF EXISTS ...。这样恢复时可以直接覆盖已有对象,避免冲突。建议保留。 |
| Disable keys | ❌ 未勾选 | 在导入数据时暂时禁用外键约束和索引,可以大幅提升导入速度。但如果中途失败,可能导致数据不一致。对应 mysqldump 的 --disable-keys 参数。 |
| Extended inserts | ✅ 已勾选 | 使用多行 INSERT 语句(如 INSERT INTO table VALUES (1,2,3), (4,5,6)...),而不是逐行插入。可以减少文件大小并加快导入速度。建议保留。 |
| Dump events | ❌ 未勾选 | 是否导出 MySQL 的事件调度器(Event Scheduler)中的事件。如果数据库有定时任务,建议勾选。 |
| Additional comments | ❌ 未勾选 | 在导出文件中添加额外的注释信息(如导出时间、版本等),方便阅读但会增加文件大小。 |
| Remove DEFINER | ❌ 未勾选 | 移除视图、存储过程、触发器等对象中的 DEFINER 子句。DEFINER 指定了对象的创建者身份,如果不移除,恢复时可能因用户不存在而报错。在迁移到不同环境时建议勾选。 |
| Dump binaries in hex | ❌ 未勾选 | 将二进制数据(如 BLOB、BINARY 类型)以十六进制格式导出。默认是正常导出,如果遇到特殊字符问题可以尝试勾选。 |
| Structure only | ❌ 未勾选 | 仅导出表结构(CREATE TABLE 等),不导出数据(INSERT 语句)。常用于备份表结构或迁移空库。 |
| No routines | ❌ 未勾选 | 这个选项很关键:当前是未勾选状态,意味着会导出存储过程、函数等。但您的备份命令中并没有 --routines 参数,说明在命令行中被覆盖了。如果勾选,则会排除存储过程和函数。 |
📁 Output(输出设置)
| 选项 | 值 | 含义 |
|---|
| Output folder | C:\PMO\SPM\db | 备份文件的保存目录。 |
| File name pattern | dump-${database}-${timestamp}.sql | 文件名模板。${database} 会被替换为数据库名,${timestamp} 被替换为当前时间戳。最终生成类似 dump-windaedm2_hz-202608210713.sql。 |
| Extra command args | 空 | 额外传递给 mysqldump 的命令行参数。在这里可以填写 --ignore-table=数据库名.视图名 来忽略特定视图,或者 --routines 来强制导出存储过程等。 |
🔐 Security(安全设置)
| 选项 | 含义 |
|---|
| Override user credentials | 勾选后,可以让 mysqldump 使用不同于当前连接的用户名/密码来执行备份。当前显示为 readonly_hz。 |
| 提示信息 | 提示外部工具(如 mysqldump)可能需要不同的权限,和 DBeaver 内部连接使用的权限不一定一致。 |
🔑 Authentication(认证)
| 选项 | 含义 |
|---|
| Authenticate | 点击后会弹窗让您输入数据库密码,用于外部工具执行备份。 |
| Reset to default | 重置为默认的认证信息(即使用 DBeaver 当前连接的凭证)。 |
| Override host credentials | 覆盖主机(host)的认证凭据,可以指定不同的主机/端口/用户进行备份。 |
🎯 底部按钮
| 按钮 | 含义 |
|---|
| Save task | 将当前备份配置保存为一个任务,方便以后重复执行。 |
| Local Client… | 选择本地安装的 mysqldump 客户端路径(DBeaver 已自动检测到 C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe)。 |
| Start | 开始执行备份。 |
C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe –skip-lock-tables –column-statistics=0 –routines –add-drop-table –disable-keys –extended-insert -u ****** –host=112.21.127.00 –port=3308 dbname_001
C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe –skip-lock-tables –column-statistics=0 –add-drop-table –disable-keys –extended-insert –hex-blob –comments -u ****** –host=112.21.127.00 –port=3308 dbname_001
上述两条命令逐项对比
| 参数 | 命令一 | 命令二 | 说明 |
|---|
--skip-lock-tables | ✅ | ✅ | 备份时不锁定表,允许读写并发。适合生产环境。 |
--column-statistics=0 | ✅ | ✅ | 不收集列统计信息,提升备份速度(MySQL 8.0 特性)。 |
--routines | ✅ | ❌ | 关键差异:导出存储过程、函数和视图。可能触发权限检查。 |
--add-drop-table | ✅ | ✅ | 生成 DROP TABLE IF EXISTS 语句,恢复时自动覆盖旧表。 |
--disable-keys | ✅ | ✅ | 导入时暂时禁用索引,大幅提升导入速度。 |
--extended-insert | ✅ | ✅ | 使用多行 INSERT,减少文件大小,加快导入。 |
--hex-blob | ❌ | ✅ | 将二进制数据(BLOB/BINARY)以十六进制导出,避免乱码或损坏。 |
--comments | ❌ | ✅ | 在 SQL 文件中添加注释信息(导出时间、版本等),便于追溯。 |
-u / --host / --port | ✅ | ✅ | 连接参数相同。 |