云网牛站
所在位置:首页 > Linux云数据库 > 如何在终端里备份并恢复MariaDB数据库

如何在终端里备份并恢复MariaDB数据库

2017-11-08 22:38:43作者:Linux大神稿源:linuxdashen

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。在ubuntu系统上,这个配置文件是/etc/mysql/mariadb.conf.d/mysqld.cnf(可能会因ubuntu版本的不同而路径不同。)。

打开这个配置文件,在[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

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

 

相关主题

第18章 使用MariaDB数据库管理系统

精选文章
热门文章