一. 业务场景
为了后期数据库管理方便,统一公司当前使用的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

四. 参考文章
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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




