Linux 技术手札

MySQL 转移到 MariaDB

RHEL 及 CentOS 7 开始的默认数据库系统由 MySQL 转为 MariaDB, 而且由于 Oracle 较封闭的政策, 很多 MySQL 开发者都将应用程式转移到 MariaDB。MariaDB 是原来 MySQL 的创办人开发的开源数据库系统, 可以取代现有的 MySQL。以下会以 CentOS 6 为例子介绍如何从原有 MySQL Server 连同资料一拼转移到 MariaDB 的做法。

MySQL 资料及设定档备份
以下转移不会用 mysqldump 备份资料, 而且将原来的资料目录直接给 MariaDB 使用。为安全起见, 先停止 MySQL 及将资料目录备份。

停用 MySQL:

# service mysql stop

如果是 CentOS 7, 用 systemctl 停止 MySQL:

# sudo systemctl stop mysql

执行以下指令将 MySQL 的资料目录备份, CentOS 的 MySQL 资料目录默认在 /var/lib/mysql:

# cp -Rp /var/lib/mysql /root/mysql_dir.bak

接着备份 my.cnf:

cp /etc/my.cnf /root/my.cnf.bak

移除 MySQL 套件
在安装 MariaDB 前, 先将现有的 MySQL 移除:

接着用 yum 移除 MySQL 套件:

# yum remove mysql* mysql-server mysql-devel mysql-libs

安装 MariaDB

然后加入 MariaDB 的 YUM Repository, 那便可以用 YUM 安装 MariaDB。(CentOS 7 可以略过此步骤)

建立档案 /etc/yum.repos.d/MariaDB.repo

# vi /etc/yum.repos.d/MariaDB.repo

加入以下内容:

之后可以用 YUM 安装 MariaDB 及其相关套件:

# sudo yum install MariaDB-server MariaDB-client

然后之前备份的 my.cnf 档案还原到 /etc/my.cnf:

# cp /root/my.cnf.bak /etc/my.cnf

如果 MySQL 及 MariaDB 的版本相同, 例如 MySQL 5.5 转移到 MariaDB 5.5, 可以直接启动 MariaDB; 但如果 MariaDB 的版本较新, 需要执行 mysql_upgrade 将两个版本不相容的地方转换。

# mysql_upgrade –verbose

之后可以启动 MariaDB:

# service mariadb start

或者

# systemctl start mariadb

启动 MariaDB 后, 可以连连到 MariaDB 检查是否正常, 例如检查数据库 test_db 里面的 test_table:

如果可以显示原来的资料, 转移过程便完成了。

Exit mobile version