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] 那一节的内容还是有效的。

从MySQL迁移到MariaDB(CentOS)的更多相关文章

  1. Linux 上从 MySQL 迁移到 MariaDB 的简单步骤

    大家好!这是一篇介绍如何在服务器或个人电脑上从MySQL迁移到MariaDB的教程.也许你会问为什么我们要将数据库管理从MySQL迁移到MariaDB.往下看我们告诉你为什么这样做.为什么要用Mari ...

  2. 在 Linux 中怎样将 MySQL 迁移到 MariaDB 上

    自从甲骨文收购 MySQL 后,由于甲骨文对 MySQL 的开发和维护更多倾向于闭门的立场,很多 MySQL 的开发者和用户放弃了 MySQL.在社区驱动下,促使更多人移到 MySQL 的另一个叫 M ...

  3. 怎样将 MySQL 迁移到 MariaDB 上

    自从甲骨文收购 MySQL 后,由于甲骨文对 MySQL 的开发和维护更多倾向于闭门的立场,很多 MySQL 的开发者和用户放弃了它.在社区驱动下,促使更多人移到 MySQL 的另一个叫 MariaD ...

  4. MySQL迁移至MariaDB

    为什么要用MariaDB来代替MySQL MariaDB是MySQL社区开发的分支,也是一个增强型的替代品.它由MySQL前开发者们带头组织的基金会开发,使用起来和MySQL完全一样.自从Oracle ...

  5. 怎样将数据库MySQL 迁移到 MariaDB 上

    自从甲骨文收购 MySQL 后,由于甲骨文对 MySQL 的开发和维护更多倾向于闭门的立场,很多 MySQL 的开发者和用户放弃了它.在社区驱动下,促使更多人移到 MySQL 的另一个叫 MariaD ...

  6. 从MySQL 5.5迁移到Mariadb 10.1.14

    从MySQL 5.5迁移到Mariadb 10.1.14 迁移计划如下: 1.备份MySQL 5.5的数据库,对指定库进行备份. 2.还原到Mariadb,然后建立复制. 3.然后就可以愿意啥时候切换 ...

  7. 迁移到MariaDB galera

    迁移到MariaDB galera [已注销] [已注销] -- :: [安装] ====== https://downloads.mariadb.org/mariadb/repositories/ ...

  8. 将数据从MySQL迁移到Oracle的注意事项

    将数据从MySQL迁移到Oracle的注意事项1.自动增长的数据类型处理MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值.ORACLE没有自动增长的数据类型,需要建立一个自动 ...

  9. MySql学习(MariaDb)

    资料 http://www.cnblogs.com/lyhabc/p/3691555.html http://www.cnblogs.com/lyhabc/p/3691555.html MariaDb ...

随机推荐

  1. HDU 5763:Another Meaning(字符串匹配)

    http://acm.hdu.edu.cn/showproblem.php?pid=5763 Another Meaning Problem Description   As is known to ...

  2. Field部分参数设置含义

    /** * Field.Store.COMPRESS:压缩保存,用于长文本或二进制数据 * Field.Store.YES:保存 * Field.Store.NO:不保存 * * Field.Inde ...

  3. Docker笔记(三):Docker安装与配置

    原文地址:http://blog.jboost.cn/2019/07/14/docker-3.html Docker分为Docker CE社区免费版与Docker EE企业收费版.Docker EE主 ...

  4. ServiceFabric极简文档-1.3删除群集

    删除群集 若要删除群集,请运行包文件夹中的 RemoveServiceFabricCluster.ps1 Powershell 脚本,并传入 JSON 配置文件的路径. 可以选择性地指定删除日志的位置 ...

  5. Flutter学习笔记(8)--Dart面向对象

    如需转载,请注明出处:Flutter学习笔记(7)--Dart异常处理 Dart作为高级语言,支持面向对象的很多特性,并且支持基于mixin的继承方式,基于mixin的继承方式是指:一个类可以继承自多 ...

  6. 【模拟】CF409C 【Magnum Opus】-C++

    题目背景 愚人节题目,题面似乎是一位名叫Nicolas Flamel的炼金术士用拉丁文写的某种物质的配方,结合谷歌尝试翻译了一下: 吾友: 哲人石所言不虚,人不可貌相,海不可斗量,唯努力得胜万象,亦无 ...

  7. 批量替换git目录的远程仓库URL地址脚本

    需求: 1. 输入work-dir 工作目录 2. 扫描工作目录中的子目录 3. 对每一个子目录, 判断是否是git repo 4. 确认是git repo, 获取git origin remote- ...

  8. Docker实现GPA+Exporter监控告警系统

    Docker实现GPA+Exporter监控告警系统 1.搭建grafana,prometheus,blackbox_exporter环境 # docker run -d -p 9090:9090 - ...

  9. 客户端远程调用Feign

    客户端远程调用 Feign 什么是Feign? Feign是 Netflix 公司开源的声明式HTTP客户端 Github : Feign 源码 为什么需要Feign? 原代码可读性不高 复杂的URL ...

  10. 个人永久性免费-Excel催化剂功能第58波-批量生成单选复选框

    插件的最大威力莫过于可以把简单重复的事情批量完全,对日常数据采集或打印报表排版过程中,弄个单选.复选框和用户交互,美观的同时,也能保证到数据采集的准确性,一般来说用原生的方式插入单选.复选框,操作繁琐 ...