类别:SQL数据库 / 日期:2025-12-11 / 浏览:13 / 评论:0

在MySQL中备份数据库并自动保存为.gz格式,有几种常用方法:

方法一:使用 mysqldump 直接压缩

# 备份单个数据库
mysqldump -u 用户名 -p 数据库名 | gzip > 备份文件.sql.gz

# 示例(需要输入密码)
mysqldump -u root -p mydatabase | gzip > backup_$(date +%Y%m%d).sql.gz

方法二:使用脚本自动备份

创建备份脚本 backup.sh:

#!/bin/bash

# 配置变量
DB_USER="用户名"
DB_PASS="密码"
DB_NAME="数据库名"
BACKUP_DIR="/path/to/backup"
DATE=$(date +%Y%m%d_%H%M%S)

# 创建备份目录
mkdir -p $BACKUP_DIR

# 执行备份并压缩
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/${DB_NAME}_${DATE}.sql.gz

# 删除7天前的备份(可选)
find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete

方法三:使用crontab定时备份

编辑crontab:

crontab -e

添加定时任务(每天凌晨2点备份):

0 2 * * * /path/to/backup.sh

方法四:备份所有数据库

#!/bin/bash

DB_USER="用户名"
DB_PASS="密码"
BACKUP_DIR="/path/to/backup"
DATE=$(date +%Y%m%d)

# 备份所有数据库
mysqldump -u$DB_USER -p$DB_PASS --all-databases | gzip > $BACKUP_DIR/full_backup_${DATE}.sql.gz

方法五:使用pigz进行多线程压缩(更快)

# 安装pigz
sudo apt-get install pigz  # Ubuntu/Debian
sudo yum install pigz      # CentOS/RHEL

# 使用pigz压缩
mysqldump -u 用户名 -p 数据库名 | pigz > 备份文件.sql.gz

安全建议:

保护密码:不要在命令行直接使用-p密码,建议使用配置文件:

# 创建 ~/.my.cnf
[client]
user=用户名
password=密码

# 然后使用
mysqldump 数据库名 | gzip > backup.sql.gz

验证备份文件:

# 解压并检查
gzip -d -c backup.sql.gz | head -n 5

# 检查文件完整性
gzip -t backup.sql.gz

恢复备份:

# 解压并恢复
gzip -d -c backup.sql.gz | mysql -u 用户名 -p 数据库名

# 或者分两步
gzip -d backup.sql.gz
mysql -u 用户名 -p 数据库名 < backup.sql

选择适合你需求的方法,建议使用脚本+crontab的方式实现自动化备份。

打赏

感谢您的赞助~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章