如何在终端里备份并恢复MariaDB数据库
MariaDB是由前MySQL开发人员组成社区开发的一个MySQL分支。这篇教程向你展示如何用mysqldump工具来备份MariaDB数据库,以及用mysql客户端工具恢复MariaDB数据库。
mysqldump
我们要使用mysqldump命令行工具来备份MariaDB数据库。mysqldump是专门用来备份数据库的。mysqldump的一个特点是备份时不需要停止MariaDB Daemon。它可以备份单个数据库,多个数据库或所有数据库。mysqldump默认会创建一个dump文件(dump file)。dump文件里包含了用于重建原有数据库所需要的SQL语句。
Binary Log 二进制日志
Binary log记录了对数据库做出的所有更改。二进制日志可以是基于SQL语句的,也可以是基于数据表行的。它的主要用途是replication。在数据库备份和恢复时,也需要用到binary log。
为了启用二进制日志,我们需要编辑MariaDB的配置文件。在不同的Linux发行版上,这个配置文件的名称会有所不同。通常这个文件是/etc/my.cnf。在ubuntu15.10系统上,这个配置文件是/etc/mysql/mariadb.conf.d/mysqld.cnf。
打开这个配置文件,在[mysqld]下,找到下面这一行
#log_bin = /var/log/mysql/mysql-bin.log
去年前面的#号,保存文件。如果你找不到,那就手动添加这一行。
重启MariaDB数据库服务器。
sudo systemctl restart mysql 或 sudo service mysql restart
现在二进制日志已经启用了。
备份单个数据库
只备份一个数据库,使用下面的命令。
mysqldump -u root -p database_name > database_name.sql
将database_name替换成实际的数据库名称。database_name.sql就是dump文件。
备份多个数据库
备份多个数据库,需要向mysqldump添加–databases选项。
mysqldump -u root -p --databases db_name1 db_name2 ... > multi_database.sql
备份所有数据库
备份所有数据库,需要向mysqldump添加–all-databases选项。
mysqldump -u root -p --all-databases > all-databases.sql
压缩dump文件
如果你的数据库很大,那么你需要压缩dump文件。
mysqldump -u root -p database_name | gzip > database_name.sql.gz
自动记录备份时间
如果你需要自动记录dump文件是在什么时候备份好的,那么在dump文件名中添加下面的命令替换。
`date +"%Y-%m-%d"`
比如这样
mysqldump -u root -p database_name > database_name_`date +"%Y-%m-%d"`.sql
恢复单个数据库
如果你要在新的数据库服务器上恢复其他数据库服务器的数据库,那么首先需要在新数据库服务器上创建一个数据库。
mysql -u root -p create database database_name; exit;
然后,恢复原先的数据库。
mysql -u root -p database_name < database_name.sql
恢复所有数据库
mysql -u root -p < all-databases.sql
获取帮助
要了解更多mysqldump的用法,执行命令mysqldump -help
你需要关注数据库备份是否工作正常。在一个理想的世界里,技术是完美的。但实际上,有很多原因会导致备份失败。