docker备份运行中的MySQL数据库

为了演示,我们首先需要一个正在运行的mysql容器:

~/temp> docker run -it --name mysql -e MYSQL_ROOT_PASSWORD=root -v /Users/rollenholt/temp/mysql:/var/lib/mysql mysql

然后我们连接到这个容器上

~> docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
e791cd0d8e02        mysql               "docker-entrypoint..."   41 seconds ago      Up 40 seconds       3306/tcp            mysql
~>
~> docker exec -ti e791cd0d8e02 /bin/bash

然后创建一个表:

mysql -hlocalhost -uroot -proot
set names utfbmb4;
create database test;
use test;
create table temp(
    id int not null auto_increment,
    primary key(id)
)engine=innodb default charset=utf8mb4;
insert into temp(id) values (1), (2), (3);

然后退出容器,在另外一个终端执行:

docker exec e791cd0d8e02 mysqldump --all-databases --password=root > mysql.backup

接下来我们就可以验证我们的备份文件:

cat mysql.backup| grep temp;
-- Table structure for table `temp`
DROP TABLE IF EXISTS `temp`;
CREATE TABLE `temp` (
-- Dumping data for table `temp`
LOCK TABLES `temp` WRITE;
/*!40000 ALTER TABLE `temp` DISABLE KEYS */;
INSERT INTO `temp` VALUES (1),(2),(3);
/*!40000 ALTER TABLE `temp` ENABLE KEYS */;

如果想基于这个备份文件恢复数据,就可以使用正常的恢复方式。

本文版权归作者所有,禁止一切形式的转载,复制等操作
赞赏

微信赞赏支付宝赞赏

发表评论

电子邮件地址不会被公开。 必填项已用*标注