使用 Mysqldump Gzip 为 MySQL 数据库创建压缩文件
本教程指导使用带有和不带有 crontab
的 mysqldump gzip
对指定的 MySQL 数据库进行压缩备份。
使用 mysqldump gzip
为 MySQL 数据库创建压缩文件
mysqldump
和 gzip
是 Linux 操作系统实用程序。mysqldump
用于备份数据库。
如果我们可以将备份保存为当前目录中的压缩文件,我们使用 gzip
如下。
示例代码一:
-- Syntax: mysqldump -u username -ppassword db_name | gzip > dumpfilename.sql.gz
mysqldump -u root -p test | gzip > dump_test_db.sql.gz
现在,使用 ls
命令确认已创建压缩文件。让我们再举一个例子,其中数据通过不同的文件并保存在最后一个文件中。
示例代码二:
-- Syntax: mysqldump -u username -ppassword db_name | gzip > file1.gz > file2.gz
mysqldump -u root -p test | gzip > file1.gz > file2.gz > file3.gz
输出:
$> ls -l
-rw-r--r-- 1 root root 0 14:35 21 May file1.gz
-rw-r--r-- 1 root root 0 14:35 21 May file2.gz
-rw-r--r-- 1 root root 453 14:35 21 May file3.gz
在本例中,mysqldump
被执行,生成的输出使用管道 (|
) 符号重定向。然后,管道将标准输出作为标准输入发送到 gzip
命令。
>
是输出重定向运算符,它将继续数据重定向,直到找到最后一个文件名,这将是保存数据的文件。
见上面给出的输出;最后一个文件是 file3
,其中包含大小 453
的数据,而 file1
和 file2
的大小是 0
。这是关于 gzip
的不同参数及其用途的详细指南。
我们还可以使用 crontab
自动执行压缩备份。让我们在下一节中学习。
使用 crontab
自动化压缩备份
我们创建了一个 cron 作业 来自动执行对数据库进行压缩备份的过程,cron 作业将在你指定的特定时间执行 mysqldump
命令。
我们需要按照步骤通过 cron 作业为 MySQL 数据库设置自动压缩备份。
第 1 步:在用户的主目录中创建一个 .my.cnf
文件。
sudo nano ~/.my.cnf
写下下面给出的确切文本。
[client]
user = db_username
password = db_password
不要忘记使用你的凭据更新 db_username
和 db_password
。例如,用户名是 root
,密码是 12345
。
示例代码:
[client]
user = root
password = 12345
完成后,保存并退出文件。
第 2 步:限制凭证文件的权限。这样,指定的用户就可以访问它。
$ chmod 600 ~/.my.cnf
第 3 步:接下来,创建一个目录以将所有备份存储在一个位置。
$ mkdir ~/database_backups
第 4 步:现在打开 crontab
文件。
$ crontab -e
在刚刚打开的 crontab
文件中写入以下作业。它将在每天凌晨 3 点创建数据库压缩备份。
在以下作业中,用户名是 root
,数据库名称是 test
,database_backups
文件夹存储所有备份。
$ 0 3* * * /usr/bin/mysqldump -u root test | gzip > /home/root/database_backups/test-$(date +\%Y\%m\%d).gz