以下是在Debian Linux服务器上将MySQL数据库迁移到MariaDB数据库的5个步骤。以下步骤是在实际生产环境测试过的。完成下面5个步骤后,无需做出其他任何更改,生产照常进行。
1.备份已有的数据库 登录Debian Server,然后在终端中输入下面的命令进入MySQL shell。 mysql -u root -p 输入MySQL的root密码,我们就进入了MySQL shell。输入下面的命令查看MySQL中有多少个数据库,不要忘记输入分号。 show databases; 以下是我的MySQL中的数据库,可以看到一共有4个数据库。
输入下面的命令退出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 先参考Debian安装MariaDB10.1数据库服务器。以下地址为MariaDB 10.3的地址。 依次输入下面的命令,添加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://nyc2.mirrors.digitalocean.com/mariadb/repo/10.3/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; 可以看到,原来所有的数据库都导入成功了。
好了,跟MySQL说再见。And say hello to MariaDB,现在不需要做其他任何更改,生产照样进行。
相关主题 |