#!/bin/bash #ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'P0i8a1o9@#'; #ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'P0i8a1o9@#'; #FLUSH PRIVILEGES; #chmod +x /mydata/docker/piaowu/mysql/piaowudbbak.sh DATE=$(date +%Y%m%d_%H%M%S) BACKUP_DIR="/mydata/docker/piaowu/mysql/bak" MYSQL_USER="root" MYSQL_PASSWORD="P2i0a2o6w@u" DATABASE_NAME="piaowu" CONTAINER_NAME="piaowumysql" # 替换为你的MySQL容器名或ID # 创建备份目录(如果不存在) mkdir -p $BACKUP_DIR # 在MySQL容器内部执行 mysqldump 命令 docker exec $CONTAINER_NAME \ sh -c "exec mysqldump -u$MYSQL_USER -p'$MYSQL_PASSWORD' $DATABASE_NAME" > "$BACKUP_DIR/piaowu_bak_$DATE.sql" # 检查是否成功导出 if [ $? -eq 0 ]; then echo "✅ 数据库备份成功: $BACKUP_DIR/piaowu_bak_$DATE.sql" else echo "❌ 数据库备份失败" exit 1 fi # 删除超过30天的旧备份 find $BACKUP_DIR -type f -name "*.sql" -mtime +30 -exec rm {} \; #定时执行备份任务 cron #0 1 * * * /mydata/docker/piaowu/mysql/piaowudbbak.sh >> /mydata/docker/piaowu/mysql/bak.log 2>&1 #查看:crontab -l 编辑:crontab -e