linux centos7 docker mysql8定时备份(docker版本/普通版本)

  • 1 创建备份文件夹
mkdir -p /data/mysql/bak/database 
  • 2 创建备份脚本
vim /data/mysql/bak/mysqlbak
  • 3 脚本内容
#!/bin/bash
DATE=`date +%Y%m%d%H%M`                #every minute
DATABASE=cjw_1101                      #database name
#DB_USERNAME=root                       #database username mysql8不需要
#DB_PASSWORD=123456               #database password mysql8不需要
BACKUP_PATH=/data/mysql/bak/database            #backup path

#backup command 
/usr/bin/mysqldump -u$DB_USERNAME -p$DB_PASSWORD -h 127.0.0.1 -R --opt $DATABASE --skip-lock-tables | gzip > ${BACKUP_PATH}\/${DATABASE}_${DATE}.sql.gz

#docker mysql container backup command
# docker必须指定绝对位置,且去除-it
#/usr/bin/docker exec  mysql-prod-3306_mysql8-web1_1 mysqldump -h 127.0.0.1 -R --opt $DATABASE --skip-lock-tables | gzip > ${BACKUP_PATH}\/${DATABASE}_${DATE}.sql.gz


#just backup the latest 30 days
find ${BACKUP_PATH} -mtime +30 -name "${DATABASE}_*.sql.gz" -exec rm -f {} \;
  • 4 授权
chmod +x /data/mysql/bak/mysqlbak
  • 5 创建定时任务
crontab -e (使用sudo方式)
# 凌晨3点
00 3 * * * /data/mysql/bak/mysqlbak
  • 6 常见错误
    • mysql8 禁止脚本明文输入密码,所以需要在my.cnf中添加mysqldump脚本
[mysqldump]
user=root
password=123456
  • 7 部分内容转载https://blog.csdn.net/JHYPXS/article/details/102925348

你可能感兴趣的:(linux centos7 docker mysql8定时备份(docker版本/普通版本))