windows mysql主主配置_基于docker MySQL数据库主主同步配置(windows上)

安装docker部分

坑点

docker拉镜像速度过慢

点击docker图标,点击邮件看到setting,setting界面上点击docker engine,配置如图所示

3d58a7259d1f3e1b636189e1c7eada4b.png

还有两个备用的镜像地址

"mirror.c.163.com","https://registry.docker-cn.com"

docker exec -it 容器id /bin/bash失败

可以尝试用 docker exec -it 容器id sh (我这样是可以解决的)

mysql数据库主主同步配置

配置过程

首先拉去docker镜像

首先拉取docker镜像,我们这里使用5.7版本的mysql:

docker pull mysql:5.7

然后使用此镜像启动容器,这里需要分别启动主从两个容器

MasterOne(主一):

docker run -p 3339:3306 --name mysqlOne -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

MasterTwo(主二):

docker run -p 3340:3306 --name myTwo -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

配置MasterOne(主一)

通过

docker exec -it 627a2368c865 /bin/bash

或者

docker exec -it 627a2368c865 sh

命令进入到MasterOne容器内部。627a2368c865是容器的id.

cd /etc/mysql切换到/etc/mysql目录下,然后vi my.cnf对my.cnf进行编辑。此时会报出bash: vi: command not found,需要我们在docker容器内部自行安装vim。使用apt-get install vim命令安装vim

会出现如下问题:

394f1745698478f95c4223409693a45b.png

执行apt-get update,然后再次执行apt-get install vim即可成功安装vim。然后我们就可以使用vim编辑my.cnf,在my.cnf中添加

[mysqld]

server_id = 1

log-bin= mysql-bin

replicate-ignore-db=mysql

replicate-ignore-db=sys

replicate-ignore-db=information_schema

replicate-ignore-db=performance_schema

read-only=0

relay_log=mysql-relay-bin

log-slave-updates=on

auto-increment-offset=1

auto-increment-increment=2

复制代码

配置完成之后,需要重启mysql服务使配置生效。使用service mysql restart完成重启。重启mysql服务时会使得docker容器停止,我们还需要docker start mysql-master启动容器。

再次进入MasterOne容器,执行mysql -uroot -p123456进入mysql (前面创建容器时密码设置为123456,用户名默认为root)

//创建一个用户来同步数据

//这里表示创建一个slave同步账号slave,允许访问的IP地址为%,%表示通配符

GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by '123456';

//查看状态,记住File、Position的值,在masterTwo中将用到

show master status;

复制代码

1e7cda1c06d3319ad29ed1898a5fd87c.png

小技巧:

查看容器IP:

docker inspect monemysql | grep IPA

4cefe8da5febbad31e1e11e0d5aa55c3.png

配置MasterTwo

我们使用vim编辑my.cnf,在my.cnf中添加

[mysqld]

server_id = 2

log-bin= mysql-bin

replicate-ignore-db=mysql

replicate-ignore-db=sys

replicate-ignore-db=information_schema

replicate-ignore-db=performance_schema

read-only=0

relay_log=mysql-relay-bin

log-slave-updates=on

auto-increment-offset=2

auto-increment-increment=2

复制代码

之后重启mysql服务

再次进入MasterTwo容器中的mysql

//设置主库链接,master_host即为容器IP,master_log_file和master_log_pos即为在mone容器中,通过show master status查出来的值;

change master to master_host='172.17.0.2',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=154,master_port=3306;

//创建一个用户来同步数据

GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by '123456';

//启动同步

start slave ;

//查看状态

show master status;

复制代码

其中master_log_file 以及master_log_pos的值就是前面说的MasterOne数据库中file以及position对应的值,host则是MasterOne容器的ip

再次配置MasterOne

//设置mtwo主库链接,参数详细说明同上

change master to master_host='172.17.0.3',master_user='slave',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=443,master_port=3306;

//启动同步

start slave ;

复制代码

其中master_log_file 以及master_log_pos的值是MasterTwo的file以及position对应的值,host172.17.0.3则是MasterTwo容器的ip

配置完成之后,可以验证双主配置是否正确

在MasterOne 以及MasterTwo容器中,查看:

show slave status\G;

8dbcd4fc960d0f8ee00d432cdc550a83.png

当红框两个Running状态都为Yes时,说明双主配置成功了~

验证

接下来请各位可以自行验证了。哈哈哈哈

参考文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值