Loading
0

5个简单步骤从MySQL迁移到MariaDB

以下是Debian 8服务器上将MySQL数据库迁移到MariaDB数据库的5个步骤。以下步骤是在实际生产环境测试过的。完成下面5个步骤后,无需做出其他任何更改,生产照常进行。

1. 备份已有的数据库

登录Debian Server,然后在终端中输入下面的命令进入MySQL shell。

mysql -u root -p

输入MySQL的root密码,我们就进入了MySQL shell。输入下面的命令查看MySQL中有多少个数据库,不要忘记输入分号。

show databases;

以下是我的MySQL中的数据库,可以看到一共有4个数据库。

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| wordpress          |
+--------------------+
4 rows in set (0.16 sec)

输入下面的命令退出MySQL shell

exit;

在终端中输入下面的命令备份所有数据库。

mysqldump --all-databases --user=root --password --master-data > backupdb.sql

啊欧,出现下面的错误提示:

mysqldump: Error: Binlogging on server not active

为了修复此错误,我们需要对my.cnf文件做一点修改。编辑my.cnf文件:

sudo vi /etc/mysql/my.cnf

添加下面一行到[mysqld]这一部分

log-bin=mysql-bin

如下:

[mysqld]
 #
 # * Basic Settings
 #
 user = mysql
 pid-file = /var/run/mysqld/mysqld.pid
 socket = /var/run/mysqld/mysqld.sock
 port = 3306
 basedir = /usr
 datadir = /var/lib/mysql
 tmpdir = /tmp
 lc-messages-dir = /usr/share/mysql
 skip-external-locking
 log-bin=mysql-bin
 #

保存文件并退出文本编辑器,然后重启mysql server。

sudo service mysql restart 或 sudo systemctl restart mysql

再次执行mysqldump命令备份全部数据库:

mysqldump --all-databases --user=root --password --master-data > backupdb.sql

这条命令会备份所有的数据库,并将它们保存在当前工作目录的backupdb.sql文件中。如果出现下面的警告,可以无视它。

-- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.

2. 停止MySQL并删除所有的mysql软件包

虽然卸载MySQL时my.cnf这个配置文件不会被删除, 但我们还是将my.cnf配置文件备份到一个安全的目录,以防万一。MariaDB在安装时,会询问你要使用原有的my.cnf文件还是使用MariaDB提供的my.cnf配置文件。

sudo cp /etc/mysql/my.cnf my.cnf.bak

备份完成后,输入下面的命令停止mysql服务。

sudo service mysql stop 或 sudo systemctl stop mysql

然后,删除所有的mysql软件包。

sudo apt-get remove mysql-server mysql-client

3 安装MariaDB

依次输入下面的命令,添加MariaDB官方软件源。

sudo apt-get install software-properties-common

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db

sudo add-apt-repository 'deb http://mirrors.hustunique.com/mariadb/repo/10.0/debian jessie main'

导入公钥并添加官方软件源后,输入下面的命令安装MariaDB:

sudo apt-get update

sudo apt-get install mariadb-server

在MariaDB安装的过程中,安装程序会询问你要使用原来MySQL的my.cnf配置文件还是要使用MariaDB提供的my.cnf文件。我们可以使用其中的任何一个。

4. 将my.cnf.bak备份文件内容复制到my.cnf配置文件中

输入下面的命令

sudo cp my.cnf.bak /etc/mysql/my.cnf

5.导入原来的数据库

输入下面的命令将第一步备份好的数据库导入到MariaDB。

mysql -u root -p < backupdb.sql

输入MariaDB的root密码后,我们就成功地导入了数据库。我们可以进入MariaDB shell查看是否真的导入成功。输入下面命令进入MariaDB shell:

mysql -u root -p

输入show database;命令列出所有数据库:

MariaDB [(none)]> show databases;

可以看到,原来所有的数据库都导入成功了。

MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| wordpress |
+--------------------+
4 rows in set (0.01 sec)

好了,跟MySQL说再见。And say hello to MariaDB. 现在不需要做其他任何更改,生产照样进行。

【声明】:8090安全小组门户(https://www.8090-sec.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们:邮箱hack@ddos.kim,我们会在最短的时间内进行处理。