在本教程中,我将向你展示如何使用mysqldump程序备份和恢复MariaDB数据库。
mysqldump
mysqldump是我们用来备份MariaDB数据库的工具,它专门为备份而设计的,可用于备份单个数据库,多个数据库和所有数据库,默认情况下,它创建一个转储文件,其中包含重新创建数据库所需的所有语句。
二进制日志
要启用二进制日志,请编辑MariaDB配置文件,通常它位于/etc/my.cnf或/etc/mysql/my.cnf,在ubuntu上,它也可能在 /etc/mysql/mariadb.conf.d/50-server.cnf 。
打开配置文件,在[mysqld]节中找到以下行#log_bin = /var/log/mysql/mysql-bin.log
删除#号,保存并关闭文件,如果找不到,请手动添加,然后,重新启动MariaDB数据库服务器。sudo systemctl restart mysql
或者sudo service mysql restart
现在二进制日志已启用。
备份单个数据库
要备份单个数据库,请在shell提示符下发出以下命令mysqldump -u root -p database_name > database_name.sql
用实际数据库名称替换database_name,database_name.sql是转储文件。
备份多个数据库
要备份多个数据库,你需要将-databases选项添加到mysqldump。mysqldump -u root -p --databases db_name1 db_name2 ... > multi_database.sql
备份所有数据库
要备份所有数据库,你需要将-all-databases选项添加到mysqldump。mysqldump -u root -p --all-databases > all-databases.sql
使用压缩备份MariaDB数据库
为了压缩.sql文件,只需将mysqldump的输出通过管道传送到gzip,这样可以大大减小备份文件的大小。mysqldump -u root -p database_name | gzip > database_name.sql.gz
提示
如果要自动记录备份数据库的时间,请将以下文本添加到备份文件名中。`date +"%Y-%m-%d"`
像这样mysqldump -u root -p database_name > database_name_`date +"%Y-%m-%d"`.sql
还原单个数据库
首先使用mysql在目标机器上创建一个数据库mysql -u root -p
create database database_name;
exit;
然后将备份还原到数据库mysql -u root -p database_name < database_name.sql
还原多个数据库mysql -u root -p < multi-databases.sql
目标计算机上的现有数据库将保持不变。
还原所有数据库mysql -u root -p < all-databases.sql
all-databases.sql文件中的SQL语句将在MariaDB中重新创建所有数据库。目标计算机上的现有数据库将保持不变。
发送备份邮件
你可以安装命令行邮件客户端mutt。sudo apt install mutt
然后将备份作为附件发送。echo"database backup" | EMAIL="[email protected]" mutt -s" database backup" -a database_name_`date +"%Y-%m-%d"`.sql.gz -- [email protected]
编辑crontab文件。
编辑root的crontab文件。sudo crontab -e
添加以下行每天自动备份数据库。@daily mysqldump -u root database_name | gzip > database_name_`date +"%Y-%m-%d"`.sql.gz