1. 为什么需要从MySQL迁移到达梦数据库
最近几年国产数据库发展迅猛,越来越多的企业开始考虑将核心业务系统从国外数据库迁移到国产数据库。达梦数据库(DM8)作为国产数据库的佼佼者,在很多关键行业领域已经得到了广泛应用。我最近刚完成了一个若依项目的数据库迁移工作,从MySQL切换到达梦数据库,整个过程踩了不少坑,也积累了一些经验。
若依作为一个流行的快速开发框架,很多企业都在使用。当我们需要把基于若依的系统从MySQL迁移到达梦时,最大的挑战在于两者在SQL语法、函数支持等方面的差异。MySQL中常用的replace into、find_in_set等函数在达梦中并不支持,需要找到对应的替代方案。此外,达梦的JDBC驱动配置、代码生成器的适配也都是需要特别注意的地方。
迁移过程看似简单,但实际上涉及到驱动引入、配置变更、SQL语法适配、代码生成器改造等多个环节。下面我就结合实战经验,详细讲解每个环节的具体操作和注意事项。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与驱动配置
2.1 达梦数据库安装
达梦数据库的安装相对简单,基本上按照官方文档的指引一步步操作即可。安装完成后,我们需要特别注意达梦的默认端口是5236,默认管理员账号是SYSDBA,密码也是SYSDBA。这些信息在后续的配置中都会用到。
安装完成后,驱动文件位于安装目录的\dmdbms\drivers\jdbc下。这里有三个不同版本的驱动包,对应不同的JDK版本:
- DmJdbcDriver15.jar:适用于JDK1.5
- DmJdbcDriver16.jar:适用于JDK1.6/1.7
- DmJdbcDriver18.jar:适用于JDK1.8及以上
2.2 引入达梦数据库驱动
由于SpringBoot没有内置对达梦数据库的支持,我们需要手动引入驱动。具体步骤如下:
- 将对应版本的驱动jar包(如DmJdbcDriver18.jar)复制到项目的resources/lib目录下
- 在pom.xml中添加依赖配置:
xml复制<!-- 达梦数据库驱动 -->
<dependency>
<groupId>com.dm</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<version>1.8</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/DmJdbcDriver18.jar</systemPath>
</dependency>
这里有几个关键点需要注意:
- scope必须设置为system
- systemPath需要正确指向驱动文件的位置
- 版本号要与实际使用的JDK版本对应
2.3 配置数据源
接下来需要修改application-druid.yml文件中的数据库配置。与MySQL配置相比,主要变化如下:
yaml复制spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: dm.jdbc.driver.DmDriver
druid:
# 主库数据源
master:
url: jdbc:dm://localhost:5236/
username: SYSDBA
password: SYSDBA
主要变更点:
- driverClassName从com.mysql.cj.jdbc.Driver变为dm.jdbc.driver.DmDriver
- URL格式从jdbc:mysql://变为jdbc:dm://
- 默认端口从3306变为5236
- 默认用户名密码
