DBeaver连接达梦DM8需手动配置驱动,关键四字段为:类名dm.jdbc.driver.DmDriver、URL模板jdbc:dm://{host}:{port}/{database}、默认端口5236、驱动名称(如DM8-JDBC18);须添加DmJdbcDriver18.jar并勾选“Always use this version”,路径不含中文或空格,连接属性中设charset=UTF-8,数据库名填真实库名(如DAMENG)而非用户名,执行SELECT * FROM V$VERSION验证。

能连上,但大概率第一次会卡在驱动或字符集上。DBeaver 对达梦(DM8)原生支持有限,多数情况得手动配驱动,且 DmJdbcDriver18.jar 版本和 JDK 兼容性必须匹配。
驱动配置必须填对这 4 个字段
在 DBeaver 的「驱动管理器」→「新建」里,类名、URL模板、默认端口、驱动名称 这四项不能靠猜:
-
类名必须是dm.jdbc.driver.DmDriver(注意大小写,不是DmJDBCDriver或其他变体) -
URL模板推荐用jdbc:dm://{host}:{port}/{database};部分老文档写的?SCHEMA={database}在 DM8 中不生效,会导致连接后看不到库 -
默认端口填5236,别留空——DBeaver 有时不会自动 fallback -
驱动名称可自定义,但后续新建连接时要能从下拉列表里准确选中它(比如叫DM8-JDBC18比单纯叫DM更不易混淆)
添加 JAR 包时容易漏掉的关键操作
手动添加 DmJdbcDriver18.jar 后,光点「确定」不够,有三个动作常被跳过:
- 在「库」选项卡里,勾选
Always use this version——否则 DBeaver 可能在下次启动时自动降级或忽略该驱动 - 确认 JAR 包路径不含中文或空格(例如不要放在「我的文档/达梦驱动/」下),否则加载失败但无明确报错
- 如果用的是 DM8 企业版,优先从安装目录
/dm8/drivers/jdbc/取DmJdbcDriver18.jar,官网下载的社区版驱动可能不兼容企业版加密协议
连接测试失败时优先检查这三项
点「测试连接」弹出「Connection failed」,先别急着重装驱动,按顺序核对:
- 达梦服务是否真在运行:
ps -ef | grep dmserver(Linux)或任务管理器查dmserver.exe(Windows) - 防火墙是否放行
5236端口:本地连localhost成功但远程 IP 失败,基本就是这个原因 - 密码是否满足复杂度:
SYSDBA密码必须含大小写字母+数字,长度 8–48 位;输错三次会锁账户,需用disql登录后执行ALTER USER SYSDBA ACCOUNT UNLOCK;
连接成功后立即验证字符集和权限
即使「测试连接」通过,也可能查不出表或报乱码,这时要立刻进连接属性里补两处:
- 在连接设置的「驱动属性」页,手动加一行:
charset=UTF-8(注意不是utf8或utf-8小写,达梦 JDBC 对值大小写敏感) - 新建连接时填的
数据库名必须是真实存在的库名(如DAMENG),不能填SYSDBA(那是用户名,不是库名);否则连接能建,但SELECT * FROM USER_TABLES会返回空 - 执行
SELECT * FROM V$VERSION;验证——返回带DM8字样的结果才算真正通了底层协议
最麻烦的不是配不通,而是配通了但查不到数据:驱动版本错、字符集没设、数据库名填成用户名、甚至 JDBC URL 里多了一个斜杠,都可能导致这种“半通”状态。建议每次换环境都重新校验 DmJdbcDriver18.jar 的 MD5 和 JDK 版本对应关系。


















