You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django项目MySQL数据库每周SQL格式备份问题求助

解决Django+MySQL每周数据库备份问题

方案1:修复django-dbbackup生成SQL格式备份

你之前用django-dbbackup没得到.sql文件,是因为默认配置没有调用MySQL原生的mysqldump工具。只需在项目的settings.py中添加以下配置:

# 备份文件存储位置(替换为你实际的目录路径)
DBBACKUP_STORAGE = 'django.core.files.storage.FileSystemStorage'
DBBACKUP_STORAGE_OPTIONS = {'location': '/var/backups/django_db'}

# 指定MySQL使用mysqldump生成SQL备份
DBBACKUP_COMMAND = {
    'mysql': 'mysqldump -u {user} -p{password} {database} > {output_file}',
}

配置完成后,执行备份命令即可生成.sql文件:

python manage.py dbbackup --database default

注意:确保运行命令的系统用户能访问mysqldump工具,且数据库账号拥有LOCK TABLES、SELECT等备份所需权限。

方案2:直接用mysqldump+定时任务(轻量无依赖)

如果觉得django-dbbackup过于繁琐,直接用MySQL原生工具配合定时任务更高效:

  1. 创建备份脚本(比如mysql_backup.sh):
#!/bin/bash
BACKUP_DIR="/var/backups/django_db"
DATE=$(date +%Y%m%d_%H%M%S)
DB_USER="your_db_username"
DB_NAME="your_db_name"

# 创建备份目录(不存在则自动创建)
mkdir -p $BACKUP_DIR

# 执行备份(建议用~/.my.cnf存储密码,避免明文泄露)
mysqldump $DB_NAME > $BACKUP_DIR/db_backup_$DATE.sql

# 可选:压缩备份文件节省空间
gzip $BACKUP_DIR/db_backup_$DATE.sql

# 可选:自动删除7天前的旧备份
find $BACKUP_DIR -name "db_backup_*.sql.gz" -mtime +7 -delete
  1. 给脚本添加执行权限:
chmod +x mysql_backup.sh
  1. 设置每周定时任务(比如每周日凌晨2点执行):
    打开crontab编辑器:
crontab -e

添加以下内容:

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

额外安全提示

不要在脚本中明文写数据库密码,可创建~/.my.cnf文件(权限设为600)存储账号信息:

[mysqldump]
user=your_db_username
password=your_db_password

内容的提问来源于stack exchange,提问作者Aakash Bansal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 08:39:55