RHEL 及 CentOS 7 开始的默认数据库系统由 MySQL 转为 MariaDB, 而且由于 Oracle 较封闭的政策, 很多 MySQL 开发者都将应用程式转移到 MariaDB。MariaDB 是原来 MySQL 的创办人开发的开源数据库系统, 可以取代现有的 MySQL。以下会以 CentOS 6 为例子介绍如何从原有 MySQL Server 连同资料一拼转移到 MariaDB 的做法。
MySQL 资料及设定档备份
以下转移不会用 mysqldump 备份资料, 而且将原来的资料目录直接给 MariaDB 使用。为安全起见, 先停止 MySQL 及将资料目录备份。
停用 MySQL:
如果是 CentOS 7, 用 systemctl 停止 MySQL:
执行以下指令将 MySQL 的资料目录备份, CentOS 的 MySQL 资料目录默认在 /var/lib/mysql:
接着备份 my.cnf:
移除 MySQL 套件
在安装 MariaDB 前, 先将现有的 MySQL 移除:
接着用 yum 移除 MySQL 套件:
安装 MariaDB
然后加入 MariaDB 的 YUM Repository, 那便可以用 YUM 安装 MariaDB。(CentOS 7 可以略过此步骤)
建立档案 /etc/yum.repos.d/MariaDB.repo
加入以下内容:
|
1 2 3 4 5 |
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/5.5/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 |
之后可以用 YUM 安装 MariaDB 及其相关套件:
然后之前备份的 my.cnf 档案还原到 /etc/my.cnf:
如果 MySQL 及 MariaDB 的版本相同, 例如 MySQL 5.5 转移到 MariaDB 5.5, 可以直接启动 MariaDB; 但如果 MariaDB 的版本较新, 需要执行 mysql_upgrade 将两个版本不相容的地方转换。
之后可以启动 MariaDB:
或者
启动 MariaDB 后, 可以连连到 MariaDB 检查是否正常, 例如检查数据库 test_db 里面的 test_table:
|
1 2 3 |
# mysql -u root -p MariaDB [(none)]> use test_db; MariaDB [test01]> select * from test_table; |
如果可以显示原来的资料, 转移过程便完成了。
您好:请问您一下,我在yum install MariaDB-client的时候失败,出现以下的讯息;
[root@throne yum.repos.d]# yum install MariaDB-client
Loaded plugins: fastestmirror
File contains no section headers.
file: file:///etc/yum.repos.d/MariaDB.repo, line: 1
‘mariadb]\n’
求救您。
求救
mysql_upgrade –verbose的时候出现以下错误:
[root@throne mysql]# mysql_upgrade –verbose
Looking for ‘mysql’ as: mysql
Looking for ‘mysqlcheck’ as: mysqlcheck
Version check failed. Got the following error when calling the ‘mysql’ command line client
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
FATAL ERROR: Upgrade failed