MySql5.7迁移达梦数据库

1. 下载安装达梦数据库Windows本地测试环境

移步链接

2. 数据迁移

2.1 达梦创建表空间

新建表空间: 

参数:

文件路径填写对应的DBF格式文件,比如数据库名字为test,那么可以在D盘创建一个名字为test.DBF的文件,其他保持不变

新建用户

填写用户名,密码,并将表空间选择刚才创建的表空间,索引选项和表空间保持一致

所属角色和系统权限可以全选

注意: 创建角色时可能会出现错误:点击确定后再此修改此用户的系统权限即可,确保能赋给该用户系统权限 👇



这时右键刷新就可发现出现了对应表空间的模式 ↓↓↓

2.2 数据迁移开始:

新建工程:名字随意


新建迁移 名字随意


点击下一步

选择 MySQL ===> DM ,点击下一步

填写MySQL数据库对应的密码,点击测试

注意:在此处可能出现数据库链接失败的情况:

解决方法: 尝试在点击自定义URL,在最后拼接上 &useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true 

若不行,尝试使用本地驱动包 👇

填写达梦数据库口令(密码):

配置迁移选项,在这一步可以勾选 ◻保持对象名大小写,避免迁移之后数据库表名全部成为大写的情况

选择对应的数据库,并配置目的模式名称,取消掉创建模式,剩余选项根据实际情况选择

选择需要迁移的表格

点击完成

注意:若迁移过程中有约束或索引迁移失败,需要手动去维护索引信息 👇

3 JAVA (SpringBoot) 配置

3.1 添加jar包

DmJdbcDriver18.jaricon-default.png?t=N7T8https://download.csdn.net/download/LXD_CSDN/88515655?spm=1001.2014.3001.5501

3.2 填写资源引用

systemPath标签请填写你放置对应jar包的位置

      <!--达梦数据库驱动-->
        <dependency>
        <groupId>com.dm</groupId>
        <artifactId>DmJdbcDriver18</artifactId>
        <version>18</version>
        <scope>system</scope>
        <systemPath>${project.basedir}/src/main/resources/lib/DmJdbcDriver18.jar</systemPath>
        </dependency>

配置达梦数据源:


#    达梦数据源
spring:
 datasource:
    url: jdbc:dm://127.0.0.1:5236?schema=TEST
    username: TEST
    password: FAAVDACDSFAF
    driver-class-name: dm.jdbc.driver.DmDriver
# PageHelper分页插件
pagehelper:
  helperDialect: oracle
  supportMethodsArguments: true
  params: count=countSql

此时,就可以启动项目,修改报错的SQL语句了

4. 注意事项

在这里记录几个SQL报错的点:

4.1 distinct 与 order by 的不兼容问题

例如: SQL语句: select distinct username from student order by age

可能报错: ORDER BY项不在DISTINCT查询项中


解决方案

运行语句:   ALTER SYSTEM SET 'COMPATIBLE_MODE'=4 SPFILE;

进入主页:

点击DM服务查看器

重启实例

4.2 `号在达梦中不合法

在MySQL中:  ` 这个符号常用在数据库的表名,列名的标注,但是在大梦中此符号不合法,注意删除

4.3 数据类型的判等问题

在mysql中,varchar类型的值, 在sql书写的where条件中可以与 数值型类型比较

例:  select username from student where username = 123

达梦中必须在123上加上单引号

例: select username from student where username = '123'


int类型的值可以当作布尔类型的值使用

mysql中假如有一字段 del_flag 为 tinyint类型 为1表示正常,0为删除,sql可以写为

例:  select username from student where del_flag

达梦中则需要写上判等条件

例:  select username from student where del_flag = 1


相似的还datetine 在mysql中可以与空字符串判断,达梦中则不可以

4.4 dbType异常问题

在项目启动过程中,若使用了dynamic 动态数据源,可以修改 

spring.dynamic.database.druid.filters = stat

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您好!对于将MySQL迁移达梦数据库的问题,您可以按照以下步骤进行操作: 1. 首先,确保您已经在目标服务器上安装了达梦数据库,并且数据库服务正在运行。 2. 在MySQL中创建一个备份文件,以便将数据导出到达梦数据库。您可以使用mysqldump命令导出MySQL数据库。例如,执行以下命令导出名为"mydatabase"的数据库: ``` mysqldump -u [用户名] -p [密码] [mydatabase] > mydatabase.sql ``` 这将生成一个名为"mydatabase.sql"的备份文件。 3. 将备份文件传输到达梦数据库服务器上,您可以使用FTP或其他文件传输工具进行传输。 4. 在达梦数据库服务器上,使用达梦数据库客户端工具打开终端或命令提示符。 5. 创建一个新的数据库,用于存储MySQL数据。例如,执行以下命令创建名为"mydatabase"的数据库: ``` create database mydatabase; ``` 6. 导入MySQL备份文件到达梦数据库。例如,执行以下命令导入备份文件: ``` dm_import -u [用户名] -p [密码] -d mydatabase -f mydatabase.sql ``` 这将导入备份文件中的数据到达梦数据库中的"mydatabase"数据库。 7. 确认数据导入成功,您可以使用达梦数据库客户端工具连接到达梦数据库并验证数据是否正确导入。 请注意,由于MySQL和达梦数据库之间的差异,某些功能和语法可能不兼容。在迁移过程中,您可能需要进行一些调整和修改以适应达梦数据库的要求。 希望这些步骤对您有所帮助!如果您还有其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值