说明:在windowns上安装达梦数据库,并从mysql5.7迁移到达梦数据库8,此处使用的是达梦数据库的试用版本,如果要安装标准版或者企业版,可以花钱购买。
下载安装包
从达梦官网下载安装包,下载地址:https://www.dameng.com/list_103.html 选择cpu平台和操作系统后进行下载,当然也可以下载docker镜像安装。
安装达梦数据库
在windows上安装
打开下载的文件,解压iso文件
点击setup.exe文件进行安装
安装过程很简单,因为是试用版本,不需要选择license文件,一直点下一步完成安装就行。安装完成后,菜单会多出达梦数据库的工具,如下图所示:
创建数据库实例
通过dm数据库配置助手来创建数据库实例
选择创建数据库实例,点击开始
一路点击下一步到初始化参数,需要将字符串设置为utf-8,字符串比较大小写敏感默认是勾选上的,千万不要去掉,因为如果去掉后,数据库存的数据将不会区分大小写,会对查询造成影响。网上很多人建议最好不区分大小写,他们之所以那样建议的原因是不区分大小写后,表名和字段名也不会区分大小写,我们从mysql迁移过来后,不需要在sql语句中对表名和字段名加双引号,这样做造成的后果就是上面提到的查询语句不能精确匹配大小写,会对业务造成影响。
其实要解决既不想修改sql,也要能区分大小写的问题,我们可以在迁移数据库的时候将表名和字段名全部转成大写迁移就可以解决,我会在后续迁移过程中标明出来。
点击下一步,设置口令,可以为每个用户设置单独的口令,也可以统一设置一个口令。
点击下一步,直到完成,数据库实例安装成功。
- 设置兼容模式
查询兼容模式
select para_name,para_value,para_type from v$dm_ini where para_name='COMPATIBLE_MODE';
设置兼容模式
sp_set_para_value(2,'COMPATIBLE_MODE',4);
说明:
sp_set_para_value(范围,参数名称,参数值);
范围:1 修改内存和参数文件2 修改参数文件
参数值:0:不兼容,1:兼容SQL92标准,2:兼容ORACLE,3:兼容MS SQL SERVER,4:兼容MYSQL
语句执行后如下:
重启实例后生效。
迁移数据库
使用达梦官方提供的数据迁移工具进行数据库迁移
新建工程
在工程下新建迁移任务
源就是mysql数据库,目的模式选择你要迁移的模式,如果达梦数据库中没有该模式,可以把创建模式勾上,会自动创建模式,去掉保持对象大小写勾选状态。
说明:在达梦给mysql建立一个账户,创建了账户,达梦就会给该账户生成默认的模式(你可以把模式理解为mysql里的数据库),后面你在java里面就用该账户去连接,然后查询语句sql里模式名就可以省略了(这个需要去看下达梦官网sql的语法,如果不写模式名,则查询账户下默认的模式),如果迁移数据库sql查询语句提示无效的表名多半就是这个原因。
点击转换-列映射选项,可以查看到每一张表字段类型、精度等的映射信息。
点击下一步创建就可以了,迁移执行完后记得去看看日志,看是否有错误。
我列举下我遇到的2个坑,一个是自增序列,如果mysql中使用了自增序列,迁移会报错,我的解决办法是在mysql这边去掉自增序列,迁移到达梦以后,手动去把自增序列给勾上,我这是没有直接去解决这个问题,绕开了,感兴趣可以去搜一搜解决办法。
还有就是json类型及clob类型,需要把json类型换成text类型,达梦数据库没有json类型,clob类型也最好转换成text类型。