
# 配置达梦（DM）数据连接时如何选择合适的驱动？
达梦（DM）数据源官方提供的不同版本驱动，除功能更新外，其对JDBC的支持也有所变化。选择合适的版本才能确保CDM正常进行数据迁移。
#### 原因分析
达梦（DM）数据库驱动的命名变更。
达梦（DM） 24年第3季度版之前的JDBC驱动JAR包命名规则为：
- DmJdbcDriver16.jar代表适配 jdk 1.6
- DmJdbcDriver17.jar代表适配 jdk 1.7
- DmJdbcDriver18.jar代表适配jdk 1.8
达梦（DM） 24 年第3季度版已加入 jdk11 的版本，并对原有JAR包进行重命名，新的JDBC驱动JAR包命名规则为：
- DmJdbcDriver6.jar代表适配jdk 1.6
- DmJdbcDriver7.jar代表适配jdk 1.7
- DmJdbcDriver8.jar代表适配jdk 1.8
- DmJdbcDriver11.jar代表适配jdk 11
CDM当前适配的还是JDK8，故在驱动的版本选择上，须选择DmJdbcDriver18.jar或者DmJdbcDriver8.jar。
#### 解决方案
1. 查看达梦（DM）数据库驱动的实际版本号。 打开驱动文件，在META-INF目录下，存在MANIFEST.MF文件，该文件记录了驱动的基本信息，并注明了该驱动的真实版本号。
   以下图为例，展示的是在2026年3月27日从达梦（DM）官网（<https://eco.dameng.com/download/>）下载的DmJdbcDriver8.jar驱动文件，其版本号为8.1.4.170。
   图1驱动文件   
   ![](https://support.huaweicloud.com/dataartsstudio_faq/zh-cn_image_0000002548727020.png "点击放大") 
2. CDM实际拼接使用的JDBC链接串格式。 在当前达梦（DM）官方文档中，DM支持的JDBC连接串有3类，具体的格式和样例可在官网查看（<https://eco.dameng.com/document/dm/zh-cn/pm/jdbc-rogramming-guide.html>）。在CDM后台连接时，实际会使用到的具体链接格式为2种：
   ```
   单节点：jdbc:dm://{{host}}:{{port}}/{{db}}[?p1=v1]
   多节点：jdbc:dm://DMDW/{{db}}?DMDW=({{host[0]}}:{{port}},...,{{host[n-1]}}:{{port}})[?p1=v1] [&p2=v2][&…]…
   ```
   以上的连接串格式中，host、port、db分别取值于在建立数据连接时填写的"数据库服务器"、"端口"和"数据库名称"三个配置项。
   
3. 选择达梦（DM）驱动和配置数据连接。 对不同驱动版本的测试情况如下：采用V8版本的达梦（DM）进行测试，对8.1.1至8.1.5共5个驱动版本的实际JDBC连接格式支持如下：
   1. 测试所用数据库：测试数据库为DM主备双节点数据库，版本为 0x 7000d。
   
   2. 测试连接格式：测试6种具体格式。
      - 多节点ipPort
      
      - 多节点ipPort+schemaName
      
      - 多节点ipPort+dbName
      
      - 单节点ipPort
      
      - 单节点ipPort+schemaName
      
      - 单节点ipPort+dbName
       
   
   3. 实际测试结果：
      图2测试结果   
      ![](https://support.huaweicloud.com/dataartsstudio_faq/zh-cn_image_0000002579446795.png "点击放大") 
   
   4. DM的8.1.1.x版本支持6种连接格式，8.1.2版本仅支持ipPort的形式，而8.1.3之后的版本则仅支持ipPort和ipPort+schemaName的形式。
    
 
#### 总结
- 可以使用较早版本的DmJdbcDriver18驱动，且实际版本号为8.1.1.x或8.1.3.x；
- 可以使用从DM官网下载的DmJdbcDriver8驱动版本，但此时需要在"数据库名称"配置中填写表空间名称。
- 请勿使用实际版本号为8.1.2.x的驱动版本。
 
