业务场景
为了后期数据库管理方便,统一公司当前使用的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同时运行。
调整MySQL服务读取的配置文件路径
由于MySQL读取的是默认配置文件/etc/my.cnf,为了使MySQL和MariaDB配置文件互不影响,采取两个DB服务分别读取不同配置文件的方法。将MySQL配置文件路径调整为/opt/mysql/my.cnf
1 | # 复制配置文件 |
安装MariaDB Enterprise(YUM)
1 | # MariaDB源配置可参考 https://mariadb.com/my_portal/download |
修改MariaDB配置文件(/etc/my.cnf.d/mariadb-enterprise.cnf)
1 | # 修改端口和数据目录 |
将MySQL数据目录下的所有文件复制到MariaDB数据目录(复制数据时,需停止MySQL服务)
1 | shell > cp -aR /opt/mysql/data/* /opt/mysql_data/ |
启动MariaDB服务
1 | shell > service mysql start |
运行mysql_upgrade
1 | shell > mysql_upgrade --verbose --port=3308 --protocol=tcp -uroot -p |
该程序执行完成后,MySQL权限表和其他的表会进行一些相应的转换,MySQL成功迁移到MariaDB。
查看系统进程,MySQL和MariaDB服务同时在运行
1 | shell > ps -aux | grep mysql |