• 从MySQL迁移到MariaDB(CentOS)


    MySQL是世界上最流行的开源关系数据库。原来 MariaDB 的设计初衷之一就是完全兼容 MySQL,包括 API 和客户端协议,使之能轻松成为 MySQL 的代替品。MariaDB 与 MySQL 相比,MariaDB 的优势在于:可免费商业使用、、运行速度复制查询处理更快、线程池、更多的扩展功能模块和储存引擎、支持 Unicode 排序。

    如果是相同的基础版本(如 5.5),可以直接卸载 MySQL 然后安装 MariaDB,这样就可以用了。甚至不需要备份然后还原数据库。当然,保险起见,升级前将所有的数据库都备份一下还是非常有必要的,以防万一。如果 MariaDB 的主版本高,在经过上面的卸载 MySQL 再安装 MariaDB 操作之后,需要使用 mysql_upgrade 升级一下。是的,甚至连命令行都与使用 MySQL 的时候一样。

    A. 先配置 MariaDB的安装源。
    目前 MariaDB 的主版本是 10.1,将下面的安装源配置保存为MariaDB.repo,上传到服务器的 /etc/yum.repos.d 文件夹:
    [mariadb]
    name = MariaDB
    enable=1
    priority=3
    baseurl = http://yum.mariadb.org/10.1/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-***** conflicts with file from package mysql-libs-5.5.32-****
    嗯,好像因为将 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. 完成,修补MariaDB
    不管版本是否升级了,执行一下数据库升级指令总没有坏处:
    # 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。

    启动MariaDB
    # service mysql start
    这个时候服务器上的网站应该已经可以正常工作了,访问数据库没有问题。
    如果有必要,安装完 MariaDB 之后可以重新安装 postfix。如果发现 phpMyAdmin 提示无访问权限了,那就是被卸载了,需要重新安装和配置 phpMyAdmin。
    另外,因为之前进行了卸载操作,所以原来的 MySQL 和 phpMyAdmin 的配置文件都被清除了,也需要重新配置。特别是 MySQL 的配置文件 /etc/my.cnf,因为 MariaDB 虽然创建了一个my.cnf.d 文件夹来存储自己的配置文件,但是它会首先加载 my.cnf,且原来 MySQL 的配置的 [mysqld] 那一节的内容还是有效的。
  • 相关阅读:
    进程与线程
    HTML——部分MP4在谷歌浏览器上无法播放
    Node——用http-proxy 做反向代理服务器
    jQuery——操作复选框(checkbox) attr checked不起作用
    ionic2——开发利器之Visual Studio Code 常用插件整理
    ionic2——开发利器之Visual Studio Code 常用快捷键
    ionic2常见问题——修改应用图标及添加启动画面(官方命令行工具自动生成)
    ionic2常见问题——启动后白屏问题
    ionic2常见问题——解决下载gradle-2.14.1-all.zip太慢或失败
    ionic2常见问题——cordova使用Gradle构建下载maven太慢,使用阿里云镜像
  • 原文地址:https://www.cnblogs.com/leixuesong/p/5388303.html
Copyright © 2020-2023  润新知