浅谈mysql数据库迁移至国产化达梦数据库

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 项目要求mysql数据库数据需要转到达梦数据库,对于达梦数据库的了解尚且不多,一开始使用手动转SQL脚本,效率极低,非常容易出错。达梦数据库的资料实在有限,经过后期研究,发现原来DM已经有自己的数据迁移工具,使用之后非常方便。对mysql数据库转达梦数据库的操作流程做一个简要分享。

1、首先我们需要在本地安装达梦数据库,安装好达梦数据库之后,便可以在开始->所有工具->达梦数据库中看到它自带的各种操作工具,如图所示:
1.png

2、创建项目工程
选择DM数据迁移工具,然后点击进入,在迁移管理里右键新建工程
image.png
输入工程名称,名称可以随便写,不影响后续操作
image.png

3、在项目下新建迁移
然后选中项目下的迁移,右键新建迁移,自定义迁移名称,点击确定
image.png

4、配置迁移内容
点击新建的迁移可以看到如下页面,并点击下一步:
image.png
然后选择mysql ==> DM7,点击下一步
image.png
输入对应的mysql数据库信息,点击刷新会自动从连接的数据库中带出数据库名,可下拉选择要迁移的数据库
注意指定驱动项需要mysql的驱动包,除了DM的包不需要导入之外,其他的都要,也就是这个,请选择合适自己数据库驱动包
image.png
image.png
选择迁移数据库后,点击下一步
image.png

输入DM的相关信息,此时指定驱动不需要选择,因为DM自带了自己的包,点击下一步
image.png
在目的模式选择需要mysql需要导入到对应的DM的数据库名称,如果还没有先去DM数据库创建数据库名称。
选中之后点击下一步
image.png

点击选择,就会全部选中,也就是你全部mysql的表都会被导入,然后点击下一步
image.png
然后显示的是详细信息,然后点击完成即可
image.png
完成之后便成功的将mysql导入进DM数据库啦!

5、mysql适配达梦数据库一些注意事项:
5.1达梦数据库jdbc驱动版本
因为使用 低版本的驱动,在sql语句上的写法可能会不同,例如查询时要加上模式名等
解决方法: 使用下面这个版本驱动,sql语句大部分和mysql一样

com.dm
jdbc
1.8

5.2达梦不支持mysql默认时间函数
使用达梦数据库字段的迁移工具,从mysql迁移数据库到达梦里时,如果mysql里表的时间字段设置了默认值,使用的是CURRENT_TIMESTAMP函数,在达梦8里迁移会报错,达梦7可正常迁移。
解决方法: 先将mysql中的表的默认值去掉,把表结构导过去之后,再在达梦中执行语句alter table 表名 modify 字段名 default sysdate
5.3达梦数据库不支持某些mybatis字符串的拼接写法
mybatis里"%“#{name}”%"这种写法达梦数据库会报错
解决方法: 使用函数CONCAT(‘%’,#{name},‘%’),双引号变成单引号
5.4达梦数据库与mysql数据库部分区别:
--创建表的时候,不支持在列的后面直接加 comment 注释,使用 COMMENT ON IS 代替
--不支持 date_sub 函数,使用 dateadd(datepart,n,date) 代替
--不支持 date_format 函数
--不支持 substring_index 函数等
5.5如果在解决函数适配问题时,直接找不到和MySQL对应的函数,可以看下oracle的相关函数,达梦数据库和 oracle 数据库比较像

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
10 0
|
5天前
|
存储 数据处理 数据库
深入了解达梦数据库的增删查改操作:从入门到精通
深入了解达梦数据库的增删查改操作:从入门到精通
|
13小时前
|
关系型数据库 MySQL 分布式数据库
如何将数据从MySQL迁移到PolarDB?
【5月更文挑战第13天】如何将数据从MySQL迁移到PolarDB?
7 0
|
1天前
|
关系型数据库 MySQL 数据库
mysql 设置环境变量与未设置环境变量连接数据库的区别
设置与未设置MySQL环境变量在连接数据库时主要区别在于命令输入方式和系统便捷性。设置环境变量后,可直接使用`mysql -u 用户名 -p`命令连接,而无需指定完整路径,提升便利性和灵活性。未设置时,需输入完整路径如`C:\Program Files\MySQL\...`,操作繁琐且易错。为提高效率和减少错误,推荐安装后设置环境变量。[查看视频讲解](https://www.bilibili.com/video/BV1vH4y137HC/)。
17 3
mysql 设置环境变量与未设置环境变量连接数据库的区别
|
3天前
|
Oracle 关系型数据库 Java
java操作多数据源将oracle数据同步达梦数据库
java操作多数据源将oracle数据同步达梦数据库
|
3天前
|
SQL 关系型数据库 MySQL
国产达梦数据库使用记录
国产达梦数据库使用记录
|
3天前
|
关系型数据库 MySQL 数据库连接
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
10 0
|
4天前
|
存储 Oracle 关系型数据库
oracle 数据库 迁移 mysql数据库
将 Oracle 数据库迁移到 MySQL 是一项复杂的任务,因为这两种数据库管理系统具有不同的架构、语法和功能。
15 0
|
5天前
|
安全 Java 数据库连接
在IntelliJ IDEA中通过Spring Boot集成达梦数据库:从入门到精通
在IntelliJ IDEA中通过Spring Boot集成达梦数据库:从入门到精通
|
5天前
|
安全 测试技术 数据库
达梦数据库Windows安装教程:从准备到完成
达梦数据库Windows安装教程:从准备到完成