DBeaver数据传输向导跨库传输时忽略BLOB问题咨询
HSQL到MySQL迁移时BLOB数据被忽略的问题分析与解决
这是DBeaver 22.3.0版本数据迁移工具的已知兼容性问题,并非你的操作错误。
问题原因
DBeaver的跨数据库迁移引擎对HSQL和MySQL的二进制类型映射、数据流传输处理存在缺陷:
- HSQL的BLOB类型通过2.7.1版本驱动返回的二进制数据流,在DBeaver迁移流程中未被正确捕获和转译到MySQL的BLOB/LONGBLOB类型字段。
- 默认迁移配置中,二进制数据的传输开关未被启用,导致引擎直接跳过BLOB字段。
更高效的替代方案
调整DBeaver迁移的类型映射规则
在迁移向导的「数据映射」步骤中:- 找到HSQL的
BLOB类型,手动映射到MySQL的LONGBLOB(避免大二进制数据长度限制)。 - 勾选对应字段的「保留二进制数据」选项(部分版本需在高级设置中开启)。
- 找到HSQL的
用HSQL内置命令生成兼容脚本
在HSQL的SQL编辑器中执行:SCRIPT 'full_mysql_dump.sql' BINARY AS BASE64;生成的SQL脚本会将BLOB数据转为Base64字符串,直接导入MySQL即可自动解析,无需手动修改。
批量导出含BLOB的表
在DBeaver中选中所有需要迁移的表,使用「数据导出」功能:- 选择导出格式为「SQL」。
- 在导出设置中开启「导出二进制数据为Base64」选项。
生成的批量脚本可直接导入MySQL,比单表导出效率更高。
版本优化提示
DBeaver 23.x及以上版本对跨数据库二进制类型迁移做了针对性修复,如果可以升级DBeaver,能直接解决这个问题,无需额外操作。
内容的提问来源于stack exchange,提问作者scoulou
相关产品推荐
相关产品推荐

