命令行方式将mysql数据库迁移到达梦数据库(全步骤)

2024-05-09 08:36

本文主要是介绍命令行方式将mysql数据库迁移到达梦数据库(全步骤),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

因项目需求,需要将mysql数据库转换为国产达梦数据库,但由于安全问题,正式环境只能用命令行方式连接,下列是操作全步骤

目录

  • 一、操作逻辑
  • 二、操作步骤
    • 1、本地安装达梦相关工具
    • 2、将服务器mysql导出到本地
      • a) 服务器命令行导出mysql数据
      • b) 本地创建mysql库和达梦数据库
    • 3、本地mysql迁移为达梦
    • 4、导出本地达梦数据库
    • 5、部署服务器的达梦数据库
      • a) 修改服务器达梦数据库配置
      • b) 重启达梦数据库
      • c) 导入数据
  • 三、异常处理
    • 1、导入达梦时报错:Error Code:-70028,创建SOCKET连接失败
    • 2、导入达梦时报错:[警告]该工具不能解析此文件,请使用更高版本的工具

一、操作逻辑

完全命令行方式操作太过麻烦,则新的操作流程如下:

  1. 本地安装mysql和达梦数据库
  2. 将linux服务器中原始mysql数据库导出并导入到本地
  3. 在本地将mysql迁移为达梦
  4. 导出本地达梦数据库内容
  5. 使用命令行导入到linux服务器的达梦数据库中

二、操作步骤

1、本地安装达梦相关工具

本地安装达梦数据库后,会自动安装连接工具。
电脑左下角搜索“DM管理工具”即为达梦数据库连接工具
在这里插入图片描述
进入达梦安装目录,tool文件夹中,dts.exe就是迁移工具
在这里插入图片描述

如果本地没有安装达梦,也可以下载下面的安装包安装

安装包地址点击链接

2、将服务器mysql导出到本地

a) 服务器命令行导出mysql数据

进入服务器,直接运行下列命令。
将mysql原始数据库hospital_files导出到服务器的/data/目录下,sql文件名为“数据库.sql”

mysqldump --routines -u root -p hospital_files > /data/数据库.sql;

在这里插入图片描述

执行完后,会在服务器的/data/目录下生成sql文件,将文件拉取到本地
在这里插入图片描述

b) 本地创建mysql库和达梦数据库

先创建hospital_files空数据库,再右键 - 运行sql文件,弹框中文件选取刚才导出的“数据库.sql”文件
在这里插入图片描述
本地达梦数据库创建名为“hospital_files”的空数据库

3、本地mysql迁移为达梦

迁移前,本地达梦数据库需要创建与mysql数据库名一样的模式,
我这里mysql数据库名为“hospital_files”,所以创建的名为“HOSPITAL_FILES”的模式

打开迁移工具dts.exe - 新建工程 - 新建迁移
在这里插入图片描述
在这里插入图片描述
新建完成出现如图页面 - 点击下一步
在这里插入图片描述
选择mysql → DM选项,点击下一步
在这里插入图片描述
输入mysql连接方式 - 点击下一步
注意:如果连接成功,会跳转到下一个页面,否则会报错
在这里插入图片描述
输入达梦数据库连接方式 - 点击下一步
注意:如果连接成功,会跳转到下一个页面,否则会报错
在这里插入图片描述
这个直接点击下一步
在这里插入图片描述
选择对应的数据库 - 点击下一步
在这里插入图片描述
点击“反选”即可全选所有的表 - 点击“转换”按钮
在这里插入图片描述
将图片上红框的两个打上勾 - 点击确定 - 下一步 - 点击完成
最后会完成迁移工作,如果有报错会有详细提示
在这里插入图片描述
迁移完后查看达梦数据库,就有表数据了
在这里插入图片描述

4、导出本地达梦数据库

方法一:命令行方式(推荐)

# 命令解释
./dexp 用户名/密码:端口 file=文件名.dmp directory=/文件输出目录 SCHEMAS=模式名
# 命令实例
./dexp sysdba/'"XXXX@2024"':5236 file=testDM.dmp directory=/opt SCHEMAS=HOSPITAL_FILES

方法二:图形化界面方式
此方式容易出现导入时版本不一致而不能解析的问题

选择对应模式,右键 - 导出 - 弹框中选择导出目录 - 点击确认
在这里插入图片描述

5、部署服务器的达梦数据库

a) 修改服务器达梦数据库配置

打开dm.ini文件,位置在dmdbms/data/YLDA文件夹中
在这里插入图片描述
修改如下的几个参数

COMPATIBLE_MODE = 4
GROUP_OPT_FLAG = 1
MY_STRICT_TABLES = 1

b) 重启达梦数据库

我的数据库安装在/data/文件夹中

# 进入目录
cd /data/dmdbms/bin
# 停止服务
./DmServiceDAMENG stop
# 开始服务
./DmServiceDAMENG start

c) 导入数据

三、异常处理

1、导入达梦时报错:Error Code:-70028,创建SOCKET连接失败

原因:可能是由于密码符号的问题导致的
方法一:更换达梦数据库密码,不能有特殊字符,比如@
方法二:将密码加上双引号,比如密码为XXXX@2024,语句中改为’ " XXXX@2024 " ’

./dimp sysdba/'"XXXX@2024"':5236 file=testDM.dmp directory=/opt SCHEMAS=HOSPITAL_FILES

2、导入达梦时报错:[警告]该工具不能解析此文件,请使用更高版本的工具

原因:导出与导入的版本不一致
方法:使用命令行方式导出

# 先导出本地达梦数据
./dexp sysdba/'"XXXX@2024"':5236 file=testDM.dmp directory=/opt SCHEMAS=HOSPITAL_FILES# 再服务器导入达梦数据
./dimp  sysdba/'"XXXX@2024"':5236 directory=/opt file=testDM.dmp SCHEMAS=HOSPITAL_FILES

这篇关于命令行方式将mysql数据库迁移到达梦数据库(全步骤)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/972911

相关文章

详谈redis跟数据库的数据同步问题

《详谈redis跟数据库的数据同步问题》文章讨论了在Redis和数据库数据一致性问题上的解决方案,主要比较了先更新Redis缓存再更新数据库和先更新数据库再更新Redis缓存两种方案,文章指出,删除R... 目录一、Redis 数据库数据一致性的解决方案1.1、更新Redis缓存、删除Redis缓存的区别二

oracle数据库索引失效的问题及解决

《oracle数据库索引失效的问题及解决》本文总结了在Oracle数据库中索引失效的一些常见场景,包括使用isnull、isnotnull、!=、、、函数处理、like前置%查询以及范围索引和等值索引... 目录oracle数据库索引失效问题场景环境索引失效情况及验证结论一结论二结论三结论四结论五总结ora

Jsoncpp的安装与使用方式

《Jsoncpp的安装与使用方式》JsonCpp是一个用于解析和生成JSON数据的C++库,它支持解析JSON文件或字符串到C++对象,以及将C++对象序列化回JSON格式,安装JsonCpp可以通过... 目录安装jsoncppJsoncpp的使用Value类构造函数检测保存的数据类型提取数据对json数

Redis事务与数据持久化方式

《Redis事务与数据持久化方式》该文档主要介绍了Redis事务和持久化机制,事务通过将多个命令打包执行,而持久化则通过快照(RDB)和追加式文件(AOF)两种方式将内存数据保存到磁盘,以防止数据丢失... 目录一、Redis 事务1.1 事务本质1.2 数据库事务与redis事务1.2.1 数据库事务1.

Linux磁盘分区、格式化和挂载方式

《Linux磁盘分区、格式化和挂载方式》本文详细介绍了Linux系统中磁盘分区、格式化和挂载的基本操作步骤和命令,包括MBR和GPT分区表的区别、fdisk和gdisk命令的使用、常见的文件系统格式以... 目录一、磁盘分区表分类二、fdisk命令创建分区1、交互式的命令2、分区主分区3、创建扩展分区,然后

Linux中chmod权限设置方式

《Linux中chmod权限设置方式》本文介绍了Linux系统中文件和目录权限的设置方法,包括chmod、chown和chgrp命令的使用,以及权限模式和符号模式的详细说明,通过这些命令,用户可以灵活... 目录设置基本权限命令:chmod1、权限介绍2、chmod命令常见用法和示例3、文件权限详解4、ch

springboot整合 xxl-job及使用步骤

《springboot整合xxl-job及使用步骤》XXL-JOB是一个分布式任务调度平台,用于解决分布式系统中的任务调度和管理问题,文章详细介绍了XXL-JOB的架构,包括调度中心、执行器和Web... 目录一、xxl-job是什么二、使用步骤1. 下载并运行管理端代码2. 访问管理页面,确认是否启动成功

Java中的密码加密方式

《Java中的密码加密方式》文章介绍了Java中使用MD5算法对密码进行加密的方法,以及如何通过加盐和多重加密来提高密码的安全性,MD5是一种不可逆的哈希算法,适合用于存储密码,因为其输出的摘要长度固... 目录Java的密码加密方式密码加密一般的应用方式是总结Java的密码加密方式密码加密【这里采用的

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

Java中ArrayList的8种浅拷贝方式示例代码

《Java中ArrayList的8种浅拷贝方式示例代码》:本文主要介绍Java中ArrayList的8种浅拷贝方式的相关资料,讲解了Java中ArrayList的浅拷贝概念,并详细分享了八种实现浅... 目录引言什么是浅拷贝?ArrayList 浅拷贝的重要性方法一:使用构造函数方法二:使用 addAll(