如何在Linux中将MySQL迁徙到MariaDB
自从甲骨文收买 MySQL 后,由于甲骨文对 MySQL 的开发和保养更多偏差于闭门的立场,很多 MySQL 的开发者和用户丢弃了MySQL。在社区驱动下,促使更多人迁徙到 MySQL 的另一个叫 MariaDB 的分支。在原有 MySQL 开发人员的率领下,MariaDB的开发遵照开源的理念,并确保 它的二进制格局与 MySQL 兼容 。Linux 发行版如 Red Hat 家族(Fedora,CentOS,RHEL),Ubuntu 和 Mint,openSUSE 和 Debian 曾经开局经常使用,并允许 MariaDB 作为 MySQL 的间接交流品。
假设你想要将 MySQL 中的数据库迁徙到 MariaDB 中,这篇文章就是你所等候的。幸运的是,由于他们的二进制兼容性,假设你参照上方的步骤,MySQL迁徙到 MariaDB 的环节将是十分便捷的。
预备 MySQL 数据库和表
出于演示的目标,咱们在做迁徙之前在数据库中创立一个测试的 MySQL 数据库和表。假设你在 MySQL 中曾经有了要迁徙到 MariaDB 的数据库,跳过此步骤。否则,按以下步骤操作。
在终端输入 root 明码登录到 MySQL 。
创立一个数据库和表。
在表中减少一些数据。
分开 MySQL 数据库。
备份 MySQL 数据库
下一步是备份现有的 MySQL 数据库。经常使用上方的 mysqldump 命令导产生有的数据库到文件中。运转此命令之前,请确保你的 MySQL 主机上启用了二进制日志。假设你不知道如何启用二进制日志,请参阅开头的教程说明。
如今,在卸载 MySQL 之前先在系统上备份 my.cnf 文件。此步是可选的。
卸载 MySQL
首先,中止 MySQL 服务。
或许:
或:
而后继续下一步,经常使用以下命令移除 MySQL 和性能文件。
在基于 RPM 的系统上 (例如 CentOS,Fedora 或 RHEL):
在基于 Debian 的系统上(例如Debian,Ubuntu或 Mint):
装置 MariaDB
在 CentOS/RHEL 7和Ubuntu(14.04或更高版本)上,***的 MariaDB 曾经蕴含在其官网源。在 Fedora上,自19 版本后 MariaDB 曾经代替了 MySQL。假设你经常使用的是旧版本或 LTS 类型如 Ubuntu 13.10或更早的,你依然可以经过减少其官网仓库来装置 MariaDB。
MariaDB 网站 提供了一个在线工具协助你依据你的 Linux 发行版来减少 MariaDB 的官网仓库。此工具为 openSUSE,Arch Linux,Mageia,Fedora,CentOS,RedHat,Mint,Ubuntu 和 Debian 提供了 MariaDB的官网仓库。
上方例子中,咱们经常使用 Ubuntu 14.04 发行版和 CentOS 7 性能 MariaDB 库。
Ubuntu 14.04
以下为 MariaDB 创立一个自定义的 yum 仓库文件。
装置了一切必要的软件包后,你或许会被要求为 MariaDB 的 root 用户创立一个新明码。设置 root 的明码后,别忘了复原备份的 my.cnf 文件。
如今进行 MariaDB 服务。
或:
或:
导入 MySQL 的数据库
***,咱们将以前导出的数据库导入到 MariaDB 主机中。
输入你 MariaDB 的 root 明码,数据库导入环节将开局。导入环节成功后,将前往到命令揭示符下。
要审核导入环节能否齐全成功,请登录到 MariaDB 主机,并检查一些样原本审核。
论断
如你在本教程中看到的,MySQL到 MariaDB 的迁徙并不难。你应该知道,MariaDB 相比 MySQL有很多新的性能。至于性能方面,在我的测试状况下,我只是将我旧的 MySQL 性能文件(my.cnf)作为 MariaDB的性能文件,导入环节齐全没有产生任何疑问。关于性能文件,我倡导你在迁徙之前请细心浏览 MariaDB 性能选项的文件,特意是假设你正在经常使用MySQL 的特定性能。
假设你正在运转有海量的表、包括群集或主从复制的数据库的复杂性能,看一看 Mozilla IT 和 Operations 团队的 更具体的指南 ,或许 官网的 MariaDB 文档 。
缺点扫除
在运转 mysqldump 命令备份数据库时产生以下失误。
经过经常使用 "--master-data",你可以在导出的输入中蕴含二进制日志消息,这关于数据库的复制和复原是有用的。但是,二进制日志未在MySQL 主机启用。要处置这个失误,修正 my.cnf 文件,并在 [mysqld] 局部减少上方的选项。(LCTT译注:理想上,假设你并没有启用二进制日志,那敞开"--master-data"即可。)
保留 my.cnf 文件,并从新进行 MySQL 服务:
或许:
或: