当前位置: 首页 > 科技观察

Linux下如何将MySQL迁移到MariaDB

时间:2023-03-21 19:20:42 科技观察

自从Oracle收购了MySQL之后,很多MySQL的开发者和用户都放弃了MySQL,因为Oracle对MySQL的开发和维护更倾向于闭门造车。在社区的推动下,越来越多的人迁移到另一个名为MariaDB的MySQL分支。MariaDB在MySQL最初的开发者的带领下,遵循开源理念进行开发,并确保其二进制格式与MySQL兼容。RedHat系列(Fedora、CentOS、RHEL)、Ubuntu和Mint、openSUSE和Debian等Linux发行版已经开始使用和支持MariaDB作为MySQL的直接替代品。如果您想将数据库从MySQL迁移到MariaDB,这篇文章就是您要找的。幸运的是,由于它们的二进制兼容性,如果您按照以下步骤操作,从MySQL迁移到MariaDB的过程非常简单。准备MySQL数据库和表出于演示目的,我们将在执行迁移之前创建一个测试MySQL数据库和数据库中的表。如果您在MySQL中已有一个要迁移到MariaDB的数据库,请跳过此步骤。否则,请按照以下步骤操作。在终端输入root密码登录MySQL。$mysql-uroot-p创建数据库和表。mysql>createdatabasetest01;mysql>usetest01;mysql>createtablepet(namevarchar(30),ownervarchar(30),speciesvarchar(20),sexchar(1));在表中添加一些数据。mysql>insertintopetvalues('brandon','Jack','puddle','m'),('dixie','Danny','chihuahua','f');退出MySQL数据库。备份MySQL数据库下一步是备份现有的MySQL数据库。使用下面的mysqldump命令将现有数据库转储到文件中。在运行此命令之前,请确保在您的MySQL服务器上启用了二进制日志记录。如果您不知道如何启用二进制日志记录,请参阅最后的教程说明。$mysqldump--all-databases--user=root--password--master-data>backupdb.sql现在在卸载MySQL之前备份系统上的my.cnf文件。此步骤是可选的。$sudocp/etc/mysql/my.cnf/opt/my.cnf.bak卸载MySQL首先,停止MySQL服务。$sudoservicemysqlstop或:$sudosystemctlstopmysql或:$sudo/etc/init.d/mysqlstop然后进行下一步,使用以下命令删除MySQL和配置文件。在基于RPM的系统(例如CentOS、Fedora或RHEL)上:$sudoyumremovemysql*mysql-servermysql-develmysql-libs$sudorm-rf/var/lib/mysql在基于Debian的系统上(例如Debian、Ubuntu或Mint):$sudoapt-getremovemysql-servermysql-clientmysql-common$sudoapt-getautoremove$sudoapt-getautoclean$sudodelusermysql$sudorm-rf/var/lib/mysqlInstallMariaDB在CentOS/RHEL7和Ubuntu(14.04或更高版本)上,最新的MariaDB包含在其官方资源中。在Fedora上,MariaDB从版本19开始取代了MySQL。如果您使用的是旧版本或LTS类型,如Ubuntu13.10或更早版本,您仍然可以通过添加其官方存储库来安装MariaDB。MariaDB网站提供了一个在线工具来帮助您根据您的Linux发行版添加官方MariaDB存储库。该工具为openSUSE、ArchLinux、Mageia、Fedora、CentOS、RedHat、Mint、Ubuntu和Debian提供MariaDB的官方存储库。在下面的示例中,我们使用Ubuntu14.04发行版和CentOS7来配置MariaDB存储库。#p#Ubuntu14.04$sudoapt-getinstallsoftware-properties-common$sudoapt-keyadv--recv-keys--keyserverhkp://keyserver.ubuntu.com:800xcbcb082a1bb943db$sudoadd-apt-repository'debhttp://mirror.mephi.ru/mariadb/repo/5.5/ubuntutrustymain'$sudoapt-getupdate$sudoapt-getinstallmariadb-serverCentOS7及以下版本为MariaDB创建自定义yum存储库文件。$sudovi/etc/yum.repos.d/MariaDB.repo[mariadb]name=MariaDBbaseurl=http://yum.mariadb.org/5.5/centos7-amd64gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1$sudoyuminstallMariaDB-serverMariaDB-client安装完所有必要的软件包后,系统可能会要求您为MariaDBroot用户创建一个新密码。设置root密码后,不要忘记恢复备份的my.cnf文件。$sudocp/opt/my.cnf/etc/mysql/现在启动MariaDB服务。$sudoservicemariadbstart或者:$sudosystemctlstartmariadb或者:$sudo/etc/init.d/mariadbstart导入MySQL数据库***,我们将之前导出的数据库导入到MariaDB服务器中。$mysql-uroot-pshowdatabases;MariaDB[(none)]>usetest01;MariaDB[test01]>select*frompet;结论正如您在本教程中看到的,MySQL到MariaDB的迁移并不困难。你应该知道,与MySQL相比,MariaDB有很多新特性。至于配置,在我的测试用例中,我只是使用我的旧MySQL配置文件(my.cnf)作为MariaDB的配置文件,导入过程没有任何问题。至于配置文件,我建议您在迁移之前仔细阅读MariaDB配置选项文档,尤其是当您使用MySQL特定配置时。如果您正在运行包含大量表的复杂配置,包括集群或复制数据库,请查看MozillaIT和运营团队的更详细指南或官方MariaDB文档。故障排除运行mysqldump命令备份数据库时出现如下错误。$mysqldump--all-databases--user=root--password--master-data>backupdb.sqlmysqldump:Error:Binloggingonservernotactive通过使用“--master-data”,您可以在导出的输出中看到包含二进制日志信息,这对数据库复制和恢复很有用。但是,MySQL服务器上未启用二进制日志记录。要解决此错误,请修改my.cnf文件并在[mysqld]部分添加以下选项。(LCTT译注:其实如果你没有启用二进制日志,只要取消“--master-data”即可。)log-bin=mysql-bin保存my.cnf文件,重启MySQL服务:$sudoservicemysql重新启动或:$sudosystemctlrestartmysql或:$sudo/etc/init.d/mysqlrestart

最新推荐
猜你喜欢