如何在终端里备份并恢复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

你需要关注数据库备份是否工作正常。在一个理想的世界里,技术是完美的。但实际上,有很多原因会导致备份失败。

 

为这篇文章评分
[Total: 1 Average: 5]

Leave a Reply

Your email address will not be published.

The maximum upload file size: 2 MB. You can upload: image, audio, video, document, spreadsheet, interactive, text, archive, code, other. Links to YouTube, Facebook, Twitter and other services inserted in the comment text will be automatically embedded. Drop file here