Dock环境下的mysql主从复制

Docker环境+MySQL主从复制

测试环境介绍
server01:master CentOS 7.6 x86_64bit
hostname:test12.liufu.com
172.16.100.12——>docker19.03.1+mysql5.7+keepalive
server02:slave CentOS 7.6 x86_64bit
hostname:test13.liufu.com
172.16.100.13——>docker19.03.1+mysql5.7+keepalive
一、Docker环境搭建
1、升级环境:yum update
2、获取docker源:
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/xentos/docker-ce.repo
3、更新yum源缓存:yum update -y
4、安装docker:yum install -y docker-ce
5、启动docker:systemctl start docker.service
6、验证docker是否安装成功:docker info

二、Docker中MySQL实例创建
1、获取mysql5.7镜像:docker pull mysql:5.7
2、查看镜像:docker images |grep mysql
3、创建mysql容器
1)创建要挂载的文件夹
cd /var/lib/mysql
mkdir conf data logs
2)运行容器
[root@test12 ~]#docker run --name mysql_5.7 -e MYSQL_ROOT_PASSWORD=password -d -i -p 3306:3306 -v /var/lib/mysql/data:/var/lib/mysql/ -v /var/lib/mysql/conf:/etc/mysql/mysql.conf.d -v /var/lib/mysql/logs:/logs mysql:5.7

注:命令说明
-name mysql_5.7 容器名称
-e MYSQL_ROOT_PASSWORD=password 数据库登陆密码password
-p 3306:3306 端口映射到宿主机
-v /var/lib/mysql/data:/var/lib/mysql/ 将主机/var/lib/mysql/data挂载到容器的/etc/mysql/
-v /var/lib/mysql/conf:/etc/mysql/mysql.conf.d
-v /var/lib/mysql/logs:/logs 将主机/var/lib/mysql/logs挂载到容器的logs
3)查看容器:docker ps
4)进入mysql容器:docker exec -it mysql-5.7 /bin/bash

三、Mysql配置文件修改
1、宿主机进入挂载的配置文件目录:cd /var/lib/mysql/conf
vim my.cnf
[mysqld]选项下添加如下内容
2、重启docker中的MySQL实例
3、登陆数据库:mysql -h 127.0.0.1 -uroot -ppassword
4、数据库用户权限设置
mysql> grant all privileges on . to root@‘%’ identified by “password”;
mysql> grant all privileges on . to root@‘localhost’ identified by “password”;
mysql> flush privileges; #刷新数据库
mysql> show grants; #查看权限

四、主从复制配置
1、master主机配置
登陆主数据库:mysql -uroot -ppassword
mysql> flush tables with read lock; #数据库锁表,不让数据写入
mysql> show master status;

mysql> unlock tables; #从启动好后,记得要解除锁定
Master数据库到此配置完毕
2、slave从机配置
修改my.cnf配置文件,并重启数据库(修改位置与主数据库一致)

登陆slave数据库:mysql -uroot -ppassword
mysql> stop slave;

mysql>change master to master_host=‘172.16.100.12’,
master_port=3306,
master_user=‘root’,
master_password=‘password’,
master_log_file=‘mysql-bin01.000007’,
master_log_pos=889;

mysql>start slave;
mysql>show slave status\G;

五、主从复制测试
1、master中创建库(docker-test)和表,并在表中插入数据,观察slave是否同步
master主机 slave从机
创建数据库:docker-test
查看创建的库是否同步

创建表
查看创建的表是否同步

修改表名
查看表名是否重命名

表中写入数据
查看表中数据是否同步

2.master中删除一条,修改一条测试表(test001)中的一条数据,观察slave是否同步
master主机 slave从机
test001表中删除第2行,并修改第3行的两个数据
查看表中数据是否同步

注:主从复制配置完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值