用docker自动备份mysql数据库

本文详细介绍了如何使用Docker容器化MySQL备份过程,包括docker-compose.yml文件配置,远程脚本remote.sh操作指南,以及如何自定义备份镜像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/data/service/mysql_backup/docker-compose.yml文件内容

version: "2"
services:
    mysql_backup:
        image: xxfaxy/self-alpine-mysql-backup
        container_name: mysql_backup
        environment:
            - READ_DATABASE_HOST=主机
            - READ_DATABASE_PORT=端口
            - READ_DATABASE_NAME=数据库名称
            - READ_DATABASE_USERNAME=用户名
            - READ_DATABASE_PASSWORD=密码
        volumes:
            - /home/test/mysql_backup:/data/mysql
        restart: always

/data/service/mysql_backup/remote.sh文件内容

#!/bin/bash
echo 'please select:'
echo '1.docker images -a'
echo '2.docker ps -a'
echo '3.docker rm -f @container'
echo '4.docker rmi -f @image'
echo '5.docker pull @image'
echo '6.docker-compose up -d'
echo '7.docker exec -it @container sh'
image=xxfaxy/self-alpine-mysql-backup
container=mysql_backup
count=$#
if [ $count -gt 0 ]
    then
        name=$1
else
    read name
fi
case $name in
    '1')
        sudo docker images -a
        ;;
    '2')
        sudo docker ps -a
        ;;
    '3')
        sudo docker rm -f $container
        ;;
    '4')
        #sudo docker rmi -f $image
        ;;
    '5')
        sudo docker pull $image
        ;;
    '6')
        sudo docker-compose --file=/data/service/mysql_backup/docker-compose.yml up -d
        ;;
    '7')
        sudo docker exec -it $container sh
        ;;
    *)
        echo "not find"
        ;;
esac

xxfaxy/self-alpine-mysql-backup镜像大小为56.77 MB

你也可以自己制作镜像,决定备份的细节,下面是源码

https://github.com/xxfaxy/mysql_backup

我的首发博客

https://www.zhouchun.net/blog/show/340

转载于:https://my.oschina.net/u/1180033/blog/909294

使用Docker自动备份MySQL 5.8数据库可以分为以下几个步骤: 1. 首先,创建一个名为backup的文件夹,用于存储备份文件。可以使用以下命令创建: ``` mkdir backup ``` 2. 然后,使用Docker命令拉取MySQL 5.8镜像并运行一个MySQL容器。可以使用以下命令完成这一步骤: ``` docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=your_password -v /path/to/backup:/var/lib/mysql mysql:5.8 ``` 这将在本地的3306端口上运行一个MySQL容器,并将容器中的/var/lib/mysql目录映射到本地的backup目录中。 3. 接下来,创建一个backup.sh脚本文件,使用以下命令: ``` touch backup.sh ``` 然后,使用文本编辑器打开backup.sh,并将以下内容添加到文件中: ``` #!/bin/bash DATE=$(date +%Y-%m-%d) BACKUP_DIR="/path/to/backup" CONTAINER_ID=$(docker ps -aqf "name=mysql") docker exec $CONTAINER_ID /usr/bin/mysqldump -u root --password=your_password your_database > $BACKUP_DIR/backup-$DATE.sql ``` 注意替换/ path/to/backup为实际的备份文件夹路径,your_password为实际的MySQL root密码,your_database为要备份数据库名称。 4. 接下来,为backup.sh脚本添加执行权限,使用以下命令: ``` chmod +x backup.sh ``` 5. 最后,使用crontab设置定期执行备份脚本。使用以下命令打开crontab编辑器: ``` crontab -e ``` 然后,将以下内容添加到文件的末尾: ``` 0 0 * * * /path/to/backup.sh ``` 这将在每天午夜执行备份脚本。 完成上述步骤后,每天午夜时,备份脚本将使用mysqldump命令将MySQL数据库备份到指定的backup文件夹中。这样,您就实现了Docker自动备份MySQL 5.8数据库的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值