从 MySQL 迁移到 MariaDB (CentOS)

在 CentOS 6.4 上从 MySQL 5.5.31 迁移至 MariaDB 5.5.31 的操作记录。

0. 先备份数据库

数据库包含了自己的几乎所有重要内容,不管进行的操作是否有风险,先备份总是很必要的。

可以通过 phpMyAdmin 导出数据库。

也可以直接在系统里将所有数据库文件备份一份:

A. 先配置 MARIADB 的安装源。

MariaDB 官方提供了一个自动生成安装源配置文件的工具:https://downloads.mariadb.org/mariadb/repositories/。依次选择 Linux 发行版(Distro)、版本(Release),然后选择 MariaDB 版本号(目前只有 10.0 和 5.5)即可。(注意,MariaDB 10 是开发版本。)

MariaDB YUM 安装源的位置:http://yum.mariadb.org/。打开后看到的是 MariaDB 版本列表,按照需要的版本号点击进入下一层文件夹。

然后根据自己的 Linux 发行版,如 CentOS、Fedora、rhel(Red Hat Enterprise Linux)以及系统架构如 x86(表示 32 位操作系统) 或 amd64(表示 64 位操作系统)选择对应的文件夹。

例如,目前 MariaDB 的主版本是 5.5,我的 CentOS 是第 6 版(6.4)、 32 位的,就选择文件夹 centos6-x86/ 。现在浏览器中的地址显示为 http://yum.mariadb.org/5.5/centos6-x86/,这就是下面配置文件中的 baseurl。

对于本例,将下面的安装源配置保存为 MariaDB.repo,上传到服务器的 /etc/yum.repos.d 文件夹:

B. 卸载原来的 MYSQL 及相关包

上面用 * 来匹配删除所有 mysql 数据包(包括因包依赖而删除的别的包,如 postfix)。因为直接安装的时候会出现冲突,例如:

好像因为将 php-mysql 也给删除了(实际上这个不该删除的),所以 phpMyAdmin 也因为依赖关系而被删除了

所以最好不要用通配符 *,而是选择性删除几个主要的,

C. 然后安装 MARIADB 及相应 PHP 扩展

也是指定几个主要的安装包,剩下的让 yum 自己进行依赖关系检查。

或者不安装 MariaDB-server 而改为具有同步多主群集特性(synchronous multi-master cluster)的 MariaDB Galera Cluster:

这里比较搞笑的是,没注意前面把 php-mysql 给卸载了,结果运行数据库之后访问 WordPress,结果遭遇下面的错误:

D. 完成,修补

不管版本是否升级了,执行一下数据库升级指令总没有坏处:

看看数据库版本是不是升级了:

将 MariaDB 加入随系统自启动列表,

以前 MySQL 的时候是 mysqld,现在是 mysql,就差了一个字母 d。

这个时候服务器上的网站应该已经可以正常工作了,访问数据库没有问题。

如果有必要,安装完 MariaDB 之后可以重新安装 postfix。如果发现 phpMyAdmin 提示无访问权限了,那就是被卸载了,需要重新安装和配置 phpMyAdmin。phpMyAdmin 之所以也会被删除,是因为之前安装的是针对 MySQL 的,不兼容 MariaDB,所以需要重新安装。

E. 配置文件

因为之前进行了卸载操作,所以原来的 phpMyAdmin 的配置文件都被清除了,需要重新配置。

而对于 MySQL 的配置文件 /etc/my.cnf,因为 MariaDB 虽然创建了一个 my.cnf.d 文件夹来存储自己的配置文件,但是它会首先加载 my.cnf,且原来 MySQL 的配置对 MariaDB 而言还是有效的。

但是也有些例外:

MariaDB 默认使用 Aria 存储引擎存储内部临时文件,而不是 MySQL 默认使用的 MyISAM。如果你有很多临时文件,最好增加参数 aria-pagecache-buffer-size 并设置为与 key-buffer-size 相同的数值。

如果没有使用 MyISAM,则可以将 key-buffer-size 设置为一个极小的值,如 64K。

转载自:水景一页

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注