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. 现在不需要做其他任何更改,生产照样进行。
好文