1、Linux
创建一个备份脚本文件,例如 backup_mysql.sh
,并将以下代码复制到文件中:
#!/bin/bash
# 设置 MySQL 登录信息
MYSQL_USER="your_mysql_username"
MYSQL_PASSWORD="your_mysql_password"
MYSQL_DATABASE="your_database_name"
BACKUP_DIR="/path/to/backup/directory"
DATE=$(date +%Y-%m-%d)
TIME=$(date +%H-%M-%S)
# 创建备份目录和文件名
mkdir -p $BACKUP_DIR/$DATE
FILENAME=$BACKUP_DIR/$DATE/$MYSQL_DATABASE-$TIME.sql.gz
# 使用 mysqldump 命令备份数据库
mysqldump --user=$MYSQL_USER --password=$MYSQL_PASSWORD --databases $MYSQL_DATABASE | gzip > $FILENAME
# 输出备份完成信息
echo "Backup completed on $(date +%Y-%m-%d %H:%M:%S) for database $MYSQL_DATABASE to $FILENAME."
# 删除超过14天的备份文件
find $BACKUP_DIR/* -mtime +14 -exec rm {} \;
为脚本文件添加可执行权限:
chmod +x backup_mysql.sh
将脚本文件添加到 crontab
中,以每天凌晨 2 点执行备份任务:
crontab -e
在打开的编辑器中,新增以下行:
0 2 * * * /path/to/backup_mysql.sh >/dev/null 2>&1
上面的shell脚本做了以下事情:
- 获取当前日期和时间。
- 使用
mkdir
命令创建备份目录和文件名。 - 使用
mysqldump
命令备份数据库,并将结果压缩成 gzip 格式。 - 输出一条备份完成信息。
- 使用
find
命令查找超过14天的备份文件,并将其删除
2、Windows
新建一个txt文件,然后修改后缀名为bat,名称为backupDB.bat
@echo off
set h=%time:~0,2%
set h=%h: =0%
set hhmiss=%date:~0,4%%date:~5,2%%date:~8,2%%h%%time:~3,2%%time:~6,2%
set "folder=%date:~0,4%%date:~5,2%%date:~8,2%"
::自动创建当天文件夹(dbBack这个文件夹需要自行创建)
if not exist D:\dbBack\%folder% (md D:\dbBack\%folder%)
::(mysql路径)\bin\mysqldump --opt -u 数据库账号 -p数据库密码 数据库名称 >输出地址
C:\"Program Files"\MySQL\"MySQL Server 5.7"\bin\mysqldump --opt -uroot -proot tqf_test > D:\dbBack\%folder%\tqf_test_%hhmiss%.sql
@echo on
::正式运行环境把pause去掉,不然cmd黑窗口会一直保留
::pause
创建定时任务