先說一下,在Linux下備份mysql
1、先創建一個腳本文件
#!/bin/bash
?
# MySQL 用戶、密碼、數據庫名稱
DB_USER="dbuser"
DB_PASSWORD="dbpassword"
DATABASE="mydatabase"
?
# 創建備份目錄
BACKUP_DIR="/path/to/your/backup/directory"
mkdir -p $BACKUP_DIR
?
# 創建備份文件名
TIMESTAMP=$(date +"%Y%m%d")
BACKUP_FILE="$BACKUP_DIR/backup-$TIMESTAMP.sql"
?
# 執行備份
mysqldump -u $DB_USER -p$DB_PASSWORD $DATABASE > $BACKUP_FILE
?
# 壓縮備份文件(可選)
gzip $BACKUP_FILE
2、授權
chmod +x /path/to/your/backup/script.sh
3、添加定時任務
crontab -e
#每天凌晨1點執行備份
0 1 * * * /path/to/your/backup/script.sh
由于在docker中默認沒有crontab定時器,就不方便搞定時任務,所以所以在宿主機中搞比較方便,在腳本中寫如下內容即可
?docker exec -i mysql /bin/bash -c 'mysqldump -uroot -p123456? --port=3306 ?testdb' > /home/backup/test_$(date +%Y%m%d%H%M%S).sql
?