答案:MySQL定时备份通过cron和mysqldump结合实现。先手动测试备份命令,确保路径权限正确;再编写包含压缩和删除7天前旧备份的shell脚本;最后配置crontab每天凌晨2点自动执行脚本,建议使用.my.cnf存储密码以提升安全性,并定期检查磁盘空间与备份完整性。

MySQL定时备份数据库主要通过结合系统定时任务(如Linux的cron)和MySQL自带的导出工具mysqldump来实现。下面介绍具体配置方法,适用于大多数Linux环境。
1. 使用mysqldump手动备份测试
在设置自动定时任务前,先手动执行一次备份命令,确保路径和权限正确。
基本语法:
mysqldump -u [用户名] -p[密码] [数据库名] > /路径/备份文件.sql
示例:
mysqldump -uroot -pmypassword mydb > /backup/mydb_$(date +%F).sql
说明:
- 使用$()包裹date命令可生成带日期的文件名,便于区分
- 建议将备份文件存放在独立目录,如/backup
- 注意:-p后直接跟密码存在安全风险,生产环境建议使用配置文件存储凭证
2. 创建备份脚本
编写shell脚本,便于定时任务调用。
创建脚本文件:
vim /backup/backup_mysql.sh
写入内容:
NetGou是一款国内知名的购物系统网店系统,它功能强大完善、运行稳定快速、界面友好人性化、可扩展性强。系统支持无限级商品分类管理、商品品牌管理、商品供货商管理、商品可同时加入多个商品分类商品批发价格,购买不同的商品数量可以设置不同的价格。不同的商品选项可以设置不同的价格订单中可以加入商品、删除商品、更改商品数量和价格、更改配送方式和配送费用新闻管理、销售统计、数据备份恢复,不同的会员等级可以设置
#!/bin/bash BACKUP_DIR="/backup" DATE=$(date +%Y%m%d_%H%M%S) DB_NAME="mydb" USER="root" PASSWORD="mypassword"mysqldump -u$USER -p$PASSWORD $DB_NAME | gzip > $BACKUP_DIR/${DBNAME}$DATE.sql.gz find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete
说明:
- 压缩输出为gz格式节省空间
- 使用find命令删除7天前的旧备份
- 保存后赋予执行权限:chmod +x /backup/backup_mysql.sh
3. 配置Linux定时任务(cron)
使用crontab添加定时执行规则。
编辑当前用户的定时任务:
crontab -e
添加一行(例如每天凌晨2点执行):
0 2 * * * /backup/backup_mysql.sh
含义:
- 分钟 小时 日 月 周
- 0 2 * * * 表示每天2:00执行
保存退出后,系统会自动加载任务。
4. 安全建议与优化
提高备份过程的安全性和稳定性:
基本上就这些,配置完成后MySQL就能自动定时备份了。关键是脚本要能独立运行,再通过cron调度即可。不复杂但容易忽略权限和路径问题。









