docker安装mysql,自动备份数据库

该脚本使用Bash语言编写,旨在自动备份MySQL数据库。它设置了用户‘root’和密码‘chat@2023’,针对名为‘chat-ai’的数据库,并将备份存储在/home/mysql/bak路径下,文件名包含日期信息。此外,脚本还会删除7天前的旧备份文件,确保备份目录整洁。
摘要由CSDN通过智能技术生成
#!/bin/bash
# 改为你的 MySQL 用户名
MYSQL_USER="root"
# 改为你的 MySQL 密码
MYSQL_PASSWORD="chat@2023"
# 数据库
DATABASE=chat-ai
# 备份路径
BACKUP=/home/mysql/bak
# 当前时间
DATETIME=$(date +%Y%m%d%H)

echo "正在备份数据库..."

docker exec -it mysql sh -c 'mysqldump -uroot -pchat@2023 chat-ai' > ${BACKUP}/chat-ai-${DATETIME}.sql

echo "数据库【$DATABASE】已备份到:${BACKUP}/chat-ai-${DATETIME}.sql下"
# 删除7天前的文件
find $BACKUP -type f -mtime +7 -exec rm -f {} \;
echo "备份结束~"
使用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、付费专栏及课程。

余额充值