在 Ubuntu 上落地 MySQL 自动化运维
一 基础架构与工具选型
二 自动化部署与配置
三 自动化备份与恢复
#!/usr/bin/env bash
set -Eeuo pipefail
BACKUP_DIR="/backup/mysql"
DATE=$(date +"%Y%m%d%H%M%S")
LOGFILE="/var/log/mysql_backup.log"
mkdir -p "$BACKUP_DIR"
BACKUP_FILE="$BACKUP_DIR/all_dbs-$DATE.sql.gz"
# 若使用 ~/.my.cnf 则无需 -p 明文
if mysqldump --single-transaction --routines --triggers --default-character-set=utf8mb4 \
--all-databases | gzip > "$BACKUP_FILE"; then
echo "$(date) [INFO] Backup succeeded: $BACKUP_FILE" >> "$LOGFILE"
else
echo "$(date) [ERROR] Backup failed" >> "$LOGFILE"
exit 1
fi
# 保留最近 7 天
find "$BACKUP_DIR" -type f -name "*.sql.gz" -mtime +7 -delete
四 监控告警与性能优化
五 安全加固与日常维护清单