MySQL数据库迁移OpenGauss数据库

本文档详述了如何在华为云服务器上使用Docker安装OpenGauss数据库,包括配置端口映射、设置数据库密码以及通过DataGrip进行连接。同时,介绍了将数据库从MySQL迁移到OpenGauss时的语法差异,并提供了后端项目配置和前端Vue项目基于Docker的部署方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境

  • 华为云服务器 4核 8G CentOS 8.0 64位
  • JDK11
  • Data Grip
  • xshell
  • xftp
  • mysql 8

安装OpenGauss

  1. 此次安装基于Docker进行安装,docker安装步骤自行解决
# 基于docker进行安装
$ docker run --name opengauss --privileged=true -p 5432:5432 -d -e GS_PASSWORD=Enmo@123 enmotech/opengauss:latest

# 解释:-p 5432:5432 表示外部5432端口映射到容器中的5432端口
# GS_PASSWORD=Enmo@123 表示使用数据库连接密码为Enmo@123
# 这里我试过修改成其他密码但是都连接不上,具体为什么还不知道

注意:docker run时会自动下载对应的镜像,所以安装完docker直接执行即可。另外执行完这个命令后数据库就已经启动了,可以尝试用第三方工具来连接数据库(例如DataGrip),注意要放行端口确保安全组和防火墙都是放行的。

  1. DataGrip连接数据库

其实高斯数据库就是基于Postgres数据库实现的,使用datagrip连接数据库时数据源可以直接选择postgres即可,后续代码中使用的jdbc也可以直接使用postgres
在这里插入图片描述

host:ip地址

port:默认5432

创建并导入数据

  1. 新建数据库

我们在postgres下新建一个名为it_service的数据库

这里新建可以使用sql语句也可以使用可视化工具

在这里插入图片描述

  1. it_service数据库下创建并导入所有项目必要数据

直接将sql文件导入datagrip中,并执行即可

这里需要特别注意,高斯数据库中的数据类型和语法和mysql中的语法有很多区别。

### MySQL迁移openGauss的兼容性问题与解决方法 #### GTID模式不兼容 当尝试将MySQL数据库迁移openGauss时,如果源端MySQL启用了`gtid_mode=ON`选项,则可能会遇到兼容性问题。由于GTID(全局事务标识符)是MySQL特有的功能,在迁移过程中会引发错误。具体表现为试图修改此参数时收到“只读变量”的提示,而直接编辑配置文件可能导致服务器无法正常启动[^2]。 针对这种情况建议采取如下措施: - **禁用GTID**:在执行数据转移之前先停掉原生实例并调整my.cnf中的设置为`gtid_mode=OFF`; - **备份恢复策略**:利用物理或逻辑方式导出不含GTID信息的数据集再导入目标平台; ```sql SET GLOBAL gtid_purged=''; -- 清除现有GTIDs (需谨慎操作) STOP SLAVE; RESET MASTER; -- 移除所有二进制日志记录 ``` #### SQL语句差异支持程度有限 尽管官方文档指出已经实现了诸多层面的互操性改进[^3],但仍存在一些特定结构化查询语言表达式的解释规则不同步现象。例如存储过程定义、触发器创建以及某些内置函数的应用场景下可能表现出行为上的偏差。 为了克服这些障碍可以考虑采用以下手段之一来优化转换流程: - 使用专门设计用于跨DBMS移植工作的第三方应用程序如Chameleon Tool 或者 pgLoader 工具辅助完成大部分重写工作,并手动校验修正剩余少量异常情况[^4]; ```bash pgloader mysql://source_user@localhost/source_db \ postgresql:///target_db?host=/var/run/postgresql&port=5432 ``` - 对于自定义编码部分则推荐参照两者的官方手册逐条对比分析找出替代方案或者重构算法逻辑以适应新环境的要求; #### 特定版本间的细微差别 值得注意的是即使是相同系列下的高低版次之间也可能隐藏着不易察觉却影响深远的变化点。因此在整个项目周期内保持密切关注最新发布的补丁更新和技术公告十分必要。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shenyang1026

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值