数据库

 首页 > 数据库 > mariadb > CentOS系统从MySQL迁移到MariaDB

CentOS系统从MySQL迁移到MariaDB

分享到:
【字体:
导读:
         摘要:1.基本的迁移操作记录这个VPS安装的是CentOS,目前版本是6.4,MySQL版本是5.5.31(使用了remi源),虚拟机的配置与此极度相似。刚开始不太了解,执行了这个比较傻的操作方式。A.先配置MARIADB的安装源。目前MariaDB的主版本是5.5,我的Cent...

CentOS系统从MySQL迁移到MariaDB
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,到时候就能做到很自然方便地迁移了。

CentOS系统从MySQL迁移到MariaDB
分享到:
MariaDB 5.3.4数据库性能测试
MariaDB 5.3.4数据库性能测试   在Vadim测试结果中有个评论说:拿MariaDB 5.3.4和 MySQL 5.5 来比较是否公平,应该是跟MySQL 5.1 进行比较,因为MariaDB 5.3.4是基于MySQL 5.1的。我想说这问题并不大,因为MySQL 5.5和MySQL 5.1在 Sysbench的OLTP性能测试结果相差不大。   因此我创建了一个跟Vadim类似的Sysbench测...
CentOS系统安装MariaDB数据库的过程
CentOS系统安装MariaDB数据库的过程 MariaDB数据库介绍: MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了 MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。 MariaDB的目的是完全兼容MySQL,包括API和命令行,...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……