类别: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的方式实现自动化备份。
版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

