作者:忠讧_136 | 来源:互联网 | 2014-05-29 08:43
1.基本的迁移操作记录这个VPS安装的是CentOS,目前版本是6.4,MySQL版本是5.5.31(使用了remi源),虚拟机的配置与此极度相似。刚开始不太了解,执行了这个比较傻的操作方式。A.先配置MARIADB的安装源。目前MariaDB的主版本是5.5,我的Cent
1. 基本的迁移操作记录
这个 VPS 安装的是 CentOS,目前版本是 6.4,MySQL 版本是 5.5.31(使用了 remi
源),虚拟机的配置与此极度相似。刚开始不太了解,执行了这个比较傻的操作方式。
A. 先配置 MARIADB 的安装源。
目前 MariaDB 的主版本是 5.5,我的 CentOS 是 32
位的,将下面的安装源配置保存为MariaDB.repo,上传到服务器的 /etc/yum.repos.d 文件夹:
[mariadb]
name = MariaDB
enable=1
priority=3
baseurl =
http://yum.mariadb.org/5.5/centos6-x86
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
其中 priority=3 是针对 YUM 的 PRIORITIES 优先级插件的。
B. 卸载原来的 MYSQL 及相关包。
# yum remove mysql*
上面用 * 来匹配删除所有 mysql 数据包(包括因包依赖而删除的别的包,如
postfix)。因为直接安装的时候会出现冲突,例如:
file /usr/share/mysql/ukrainian/errmsg.sys from install of
MariaDB-server-5.5.31-1.i686 conflicts with file from package
mysql-libs-5.5.32-1.el6.remi.i686
嗯,好像因为将 php-mysql 也给删除了(实际上这个不该删除的),所以 phpMyAdmin
也因为依赖关系而被删除了,我没仔细看。
所以最好不要用通配符 *,而是选择性删除几个主要的,
# yum remove mysql mysql-server
mysql-libs
但是这个我没有再测试,因为后面有更好的方法。
C. 然后安装 MARIADB 及相应 PHP 扩展。
也是指定几个主要的安装包,剩下的让 yum 自己进行依赖关系检查。
# yum install MariaDB-server
MariaDB-client php-mysql
或者不安装 MariaDB-server 而改为具有同步多主群集特性(synchronous multi-master
cluster)的 MariaDB Galera Cluster:
# yum install MariaDB-Galera-server
MariaDB-client galera
这里比较搞笑的是,没注意前面把 php-mysql 给卸载了,结果运行数据库之后访问
WordPress,结果遭遇下面的错误:
Your PHP installation appears to be missing the MySQL extension
which is required by WordPress.
D. 完成,修补
不管版本是否升级了,执行一下数据库升级指令总没有坏处:
# mysql_upgrade -p
看看数据库版本是不是升级了:
# mysql -u root -p -e 'show global variables
like "version";'
Enter password:
+---------------+----------------+
| Variable_name | Value |
+---------------+----------------+
| version | 5.5.31-MariaDB |
+---------------+----------------+
将 MariaDB 加入随系统自启动列表,
# chkconfig --levels 345 mysql on
嗯,以前 MySQL 的时候是 mysqld,现在是 mysql,就差了一个字母 d。
启动它,
# service mysql start
这个时候服务器上的网站应该已经可以正常工作了,访问数据库没有问题。
如果有必要,安装完 MariaDB 之后可以重新安装 postfix。如果发现 phpMyAdmin
提示无访问权限了,那就是被卸载了,需要重新安装和配置 phpMyAdmin。
另外,因为之前进行了卸载操作,所以原来的 MySQL 和 phpMyAdmin 的配置文件都被清除了,也需要重新配置。特别是
MySQL 的配置文件 /etc/my.cnf,因为 MariaDB 虽然创建了一个my.cnf.d
文件夹来存储自己的配置文件,但是它会首先加载 my.cnf,且原来 MySQL 的配置的 [mysqld]
那一节的内容还是有效的。
2. 进一步优化的升级方法
还是在上面介绍的系统配置下,先添加 MariaDB 安装源,然后直接执行系统升级,
# yum update --skip-broken
MariaDB 相关安装包会被安装,不需要的 MySQL
包将被卸载,并且升级之后不需要对系统进行修补了。看看输出的前面一部分:
==============================================================================================================
Package Arch Version Repository Size
==============================================================================================================
Installing:
MariaDB-Galera-server i686 5.5.29-1 mariadb 19
M
replacing
mysql.i686 5.5.21-1.el6.remi
replacing
mysql-server.i686 5.5.21-1.el6.remi
MariaDB-server i686 5.5.31-1 mariadb 32 M
replacing
mysql-server.i686 5.5.21-1.el6.remi
MariaDB-shared i686 5.5.31-1 mariadb 1.0 M
replacing
mysql-libs.i686 5.5.21-1.el6.remi
kernel i686 2.6.32-358.11.1.el6 updates 24 M
libjpeg-turbo i686 1.2.1-1.el6 base 176 k
replacing libjpeg.i686 6b-46.el6
Updating:
.........
可以看出来MariaDB设计思想中的无缝替代MySQL确实是精深的技术。所以现在没必要急着做这个升级,因为过不了多久
CentOS 就会采用 MariaDB,到时候就能做到很自然方便地迁移了。