容器方式mysql数据库服务和客户端,实现数据库的备份和恢复操作。
要求实验主机能够连接外网,docker安装好并设置好国内镜像加速器。
步骤如下:
1. 创建自定义的桥接网络
1.1 查看创建结果
1.2 查看创建的网络详细信息
2. 运行数据库服务的容器,使用自定义的网络
2.1 查看该容器的详细信息,可以看到数据卷信息
3. 准备生成测试数据的MYSQL脚本
在宿主机上准备一个sql脚本test.sql,内容如下:
#test.sql 创建库,创建表,插入一些数据内容可以自己确定
create database if not exists web1;
use web1;
create table if not exists ctinfo
(
id int,
city char(6),
areano char(6)
);
delete from ctinfo;
insert into ctinfo values(1,'CQ','023'), (2,'CD','028'), (3,'GZ','020');
4. 运行数据库客户端,也使用自定义的网络,这样客户端可以用名称同服务端容器通信
4.1 方式1:连接后进入mysql控制台,可以用exit命令退出
4.2 方式2:客户端连接后直接执行sql脚本。脚本可以参照上面的test.sql, 执行的语句放在命令行的-e 选项的参数中; source /sql/test.sql表示在控制台执行指定的脚本,执行结束后退出。
4.3 方式3:执行一条SQL语句后退出,SQL语句放在-e选项的参数中
查看库列表
在指定库中执行SQL语句
5. 备份数据库到宿主机特定目录下
6. 删除数据库容器及其卷,然后准备进行恢复
7.再运行一个数据库容器db1,用于恢复数据(名称可以可以不同)
7.1 查看数据库容器中的库,无前面创建的测试数据
在控制台执行 show databases;
确认无前面的测试数据,然后exit退出
7.2用备份的数据恢复容器db1的数据库
先停止数据库容器
然后执行恢复
再启动数据库服务的容器
7.3再查看数据库容器中的库
7.4 查看表ctinfo的内容
说明数据恢复成功。