Docker初识:mysql 使用mysqldump定时备份数据库

一、说明

1、docker启动的mysql 容器:

[docker@iZ2ze7edxmvc77g249gzmmZ backup]$ docker ps
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                               NAMES
c66a9075448c        mysql                   "docker-entrypoint.s…"   13 months ago       Up 13 months        0.0.0.0:3306->3306/tcp, 33060/tcp   mysql

2、mysqldump

使用mysqldump对mysql 每天定时备份, 并删除7天以前的备份

3、备份脚本 mysql_dump.sh

#!/bin/bash
docker exec mysql mysqldump -uroot -p123456 cx | gzip > /opt/mysql/backup/cx_`date +%Y%m%d`.sql.gz
send=`date '+%Y-%m-%d %H:%M:%S'`
if [ $? -ne 0 ];
then
    echo "$send 数据备份失败"
    exit -1
else
    echo "$send 数据备份成功!"
fi

find /opt/mysql/backup/ -mtime +7 -name 'cx_[1-9].sql' -exec rm -rf {} \;

脚本说明:

a、mysqldump备份命令

mysqldump -uroot -p123456 cx  > /opt/mysql/backup/cx_`date +%Y%m%d`.sql

b、删除7天以前的备份,根据情况保留

find /opt/mysql/backup/ -mtime +7 -name 'cx_[1-9].sql' -exec rm -rf {} \;

c、| gzip 备份的同时进行压缩

3、通过linux cron设置定时任务

crontab -e:
#每周日凌晨2点
00 02 * * 7 sh /opt/mysql/backup/mysql_dump.sh > /opt/mysql/backup/mysql_dump.log 2>&1

二、补充

1、举例说明。

一次性备份这个数据

mysqldump -uroot -p123456 --all-databases  > /opt/mysql/backup/all_`date +%Y%m%d`.sql

备份一个或多个数据库

mysqldump -uroot -p123456 test1 test2  > /opt/mysql/backup/all_`date +%Y%m%d`.sql

备份一张表student

mysqldump -uroot -p123456 test student > /opt/mysql/backup/test_student_`date +%Y%m%d`.sql

备份多张表student和grade

mysqldump -uroot -p123456 test student grade  > /opt/mysql/backup/test_student_grade_`date +%Y%m%d`.sql

利用循环备份多个数据库

#!/bin/bash
if [ ! -d $(date +%Y%m%d)  ];then
  mkdir $(date +%Y%m%d)
fi
for t in "test1" "test2" "test3"
do
mysqldump -uroot -proot123 $t | gzip > /opt/mysql/backup/$(date +%Y%m%d)/${t}_`date +%Y%m%d`.sql.gz
if [ $? -ne 0 ];
then
    echo $t "数据备份失败"
else
    echo $t "数据备份成功!"
fi
done


随手用到,就随手记录一下。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Docker MySQL 备份数据库的步骤如下: 1. 进入 MySQL 容器:`docker exec -it mysql_container_name /bin/bash` 2. 使用 mysqldump 命令备份数据库:`mysqldump -u root -p database_name > backup.sql` 3. 将备份文件复制到宿主机:`docker cp mysql_container_name:/backup.sql /host/path` 4. 退出容器:`exit` 其中,`mysql_container_name` 为 MySQL 容器的名称,`database_name` 为要备份数据库名称,`backup.sql` 为备份文件的名称,`/host/path` 为宿主机上保存备份文件的路径。 ### 回答2: Docker 是一种流行的虚拟化技术,可以为开发者和运维人员提供更加方便的开发和运维环境。Mysql 是一种常用的数据库,很多项目都会使用它作为数据存储。在项目运行的过程中,数据的备份非常重要,以防意外情况导致数据被损坏或丢失。下面介绍一下如何使用 DockerMysql 数据库进行备份。 1. 创建 Docker 容器:首先需要在本地电脑上安装 Docker,并通过 Docker 安装 Mysql 镜像。运行以下命令来创建一个新的容器: ``` docker run --name mysql -e MYSQL_ROOT_PASSWORD=password -d mysql ``` 这个命令会创建一个名为 mysql 的容器,设置 root 用户的密码为 password,同时使用 mysql 镜像来运行这个容器。 2. 连接到数据库使用以下命令来连接到刚刚创建的 mysql 容器: ``` docker exec -it mysql mysql -u root -p ``` 这个命令会进入到容器内部,并以 root 用户身份连接到 Mysql 数据库。 3. 备份数据库:在 Mysql 控制台中可以使用 mysqldump 命令来备份数据库备份命令如下: ``` mysqldump -u root -p database_name > backup_file.sql ``` 其中 database_name 是要备份数据库名称,backup_file.sql 是备份文件的名称。运行这个命令将会将数据库备份到本地文件中。 4. 备份完成:备份完成后,可以使用以下命令来退出容器内部,并停止容器: ``` exit docker stop mysql ``` 通过以上步骤,我们可以很容易地使用 Docker备份 Mysql 数据库备份的文件可以保存到本地计算机或者其他云存储中,以便后续的恢复操作。同时,由于备份是在 Docker 容器内进行的,可以避免对本地计算机产生不必要的影响和占用资源。 ### 回答3: Docker是一种流行的容器化技术,能够让用户在隔离的容器环境中运行应用程序。针对MySQL数据库Docker提供了许多方便的备份和恢复工具来管理数据库使用Docker备份MySQL数据库,可以采用两种方法:第一种是使用官方的MySQL Image,第二种是手动创建一个MySQL容器并备份数据库。 第一种方法较为简单,只需使用Docker官方提供的MySQL Image,并将备份文件保存到主机上。 以下是使用官方MySQL Image备份数据库的步骤: 1.拉取MySQL Image: ```docker pull mysql:latest``` 2.创建一个MySQL容器并启动: ```docker run --name mysql_backup -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql``` 3.进入MySQL容器设置MySQL用户和密码: ```docker exec -it mysql_backup mysql -uroot -ppassword -e "CREATE USER 'backup'@'%' IDENTIFIED BY 'password';GRANT SELECT, LOCK TABLES ON *.* TO 'backup'@'%';"``` 4.运行MySQL备份命令: ```docker exec -it mysql_backup sh -c 'exec mysqldump --all-databases -uroot -ppassword' > /backups/all-databases.sql``` 备份文件将保存在容器内的/backups目录下,通过Docker命令将其拷贝到主机上即可: ```docker cp mysql_backup:/backups/all-databases.sql /local/path/to/save/backups/``` 如果您想手动创建一个MySQL容器并备份数据库,则需要执行以下步骤: 1.拉取MySQL Image: ```docker pull mysql:latest``` 2.使用Dockerfile手动构建一个mysql数据库容器。(Dockerfile内容如下) ```FROM mysql:latest COPY mysql.conf /etc/mysql/mysql.conf.d/mysqld.cnf RUN mkdir /var/run/mysqld && chown mysql /var/run/mysqld CMD ["mysqld", "--defaults-file=/etc/mysql/mysql.conf.d/mysqld.cnf", "--user=mysql"] ``` 使用如下命令构建Dockerfile: ```docker build -t mysql-backup:latest .``` 3.运行容器并执行备份命令: ```docker run --rm --name mysql-backup -v /path/on/host:/var/mysql/backups mysql-backup:latest sh -c 'exec mysqldump --all-databases -uroot -ppassword' > /var/mysql/backups/all-databases.sql``` 同样,备份文件将会保存在容器内的/var/mysql/backups目录下,通过Docker cp命令将备份文件拷贝到本地路径中。 无论是使用官方MySQL Image还是手动创建MySQL容器备份数据库,都需要定期备份数据库以防止数据丢失。同时,备份文件也需要存储到安全的位置以保证数据的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值