暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL迁移到MariaDB

DBA之路 2021-04-21
1092

一. 业务场景

为了后期数据库管理方便,统一公司当前使用的MySQL数据库版本(当前存在MySQL和MariaDB同时使用的情况),需要将某项目的MySQL数据库替换为MariaDB。


二. 服务器详情

  • 操作系统:CentOS 7

  • MySQL版本:MySQL 5.5.8(二进制包安装)

  • MariaDB版本:MariaDB 10.0.23(YUM安装)


三. 执行步骤

为了降低替换风险,需保持旧有的MySQL服务和新安装的MariaDB服务同时运行,待测试确认MariaDB没有问题后,再停止原有MySQL服务,完全切换到MariaDB。
主要操作为:
在项目的测试服务器上安装MariaDB数据库,且MariaDB和MySQL使用不同的配置文件和数据目录,将MySQL的所有数据(含权限信息)迁移到MariaDB,保持MySQL和MariaDB同时运行。

1. 调整MySQL服务读取的配置文件路径

由于MySQL读取的是默认配置文件/etc/my.cnf,为了使MySQL和MariaDB配置文件互不影响,采取两个DB服务分别读取不同配置文件的方法。将MySQL配置文件路径调整为/opt/mysql/my.cnf

# 复制配置文件
shell > cp etc/my.cnf opt/mysql/my.cnf
# 关闭MySQL服务后并重启,以读取新路径的配置文件
shell > ./bin/mysqld_safe --defaults-file=/opt/mysql/my.cnf --user=mysql

2. 安装MariaDB Enterprise(YUM)

# MariaDB源配置可参考 https://mariadb.com/my_portal/download
shell > yum install MariaDB-server MariaDB-client

3. 修改MariaDB配置文件(/etc/my.cnf.d/mariadb-enterprise.cnf)

# 修改端口和数据目录
port = 3308
datadir = /opt/mysql_data

4. 将MySQL数据目录下的所有文件复制到MariaDB数据目录(复制数据时,需停止MySQL服务)

shell > cp -aR /opt/mysql/data/* /opt/mysql_data/

5. 启动MariaDB服务

shell > service mysql start

6. 运行mysql_upgrade

shell > mysql_upgrade --verbose --port=3308 --protocol=tcp -uroot -p

该程序执行完成后,MySQL权限表和其他的表会进行一些相应的转换,MySQL成功迁移到MariaDB。

7. 查看系统进程,MySQL和MariaDB服务同时在运行

shell > ps -aux | grep mysql



四. 参考文章

  1. Upgrading to MariaDB From MySQL 5.0 or Older: https://mariadb.com/kb/en/mariadb/upgrading-to-mariadb-from-mysql-50-or-older/

文章转载自DBA之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论