Ubuntu 安装docker 搭建MySQL主从服务(三)配置主从节点实现主从同步

时间:2024-04-06 14:29:27

配置主节点Master:

通过容器名或者容器id进入容器内部,为了方便记忆我将两个容器改名,

$ docker rename mysql mqMaster
$ docker rename mysql001 mqSlave

 

Ubuntu 安装docker 搭建MySQL主从服务(三)配置主从节点实现主从同步

进入主节点容器:$decker exec -it mqMaster /bin/bash  或者 $docker exec -it fbc57268b52f /bin/bash

进入配置目录MySQL下:cd /etc/mysql

编辑MySQL配置文件my.cnf

{这里需要容器安装vim编辑器,第一次,$apt-get install vim,若报错:E: Unable to locate package vim

先执行apt-get update,再此执行$apt-get install vim。直到安装成功,这里不再赘述。}

# vi my.cnf  再my.cnf配置文件中添加下列配置:

[mysqld]
##server-id可以是任意值,但要保证同一局域网内唯一
server-id=100  
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin

:wq,退出保存配置文件。重启MySQL,#service mysql restart。MySQL的重启会导致docker容器的终止。

需要重新启动容器:$docker start mqMaster 。

同样的进入容器内部,登陆MySQL:$mysql -u -root -p,输入密码:123456(创建容器时已设置)

为Master节点创建数据同步用户,并授权REPLICATION SLAVE权限和REPLICATION CLIENT权限。

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

Ubuntu 安装docker 搭建MySQL主从服务(三)配置主从节点实现主从同步

主节点配置完毕。

配置从节点Slave:

在my.cnf中添加配置:

[mysqld]
## server-id可以是任意值,但要保证同一局域网内唯一
server-id=101  
## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
log-bin=mysql-slave-bin   
## relay_log配置中继日志
relay_log=edu-mysql-relay-bin  

重启MySQL服务→service mysql restart

重启容器→docker start mqSlave

进入容器→docker exec -it mqSlqve /bin/bash

登陆MySQL→mysql -u root -p

键入密码→等待下一步操作。

============

Master节点:

同理开启主节点,运行主节点MySQL,执行show master status;

Ubuntu 安装docker 搭建MySQL主从服务(三)配置主从节点实现主从同步

记录file和position值。

Slave节点:

change master to master_host='192.168.*.*', master_user='slave', master_password='123456', master_port=****, master_log_file='mysql-bin.000003', master_log_pos= 0, master_connect_retry=30;

★★★★★这里很重要,我曾为这个浪费了不少时间,看了很多贴子,诸多原因,导致后来配置后没同步。这里留下说明。

1、master_host→docker宿主机的IP,可以通过ifconfig获取

Ubuntu 安装docker 搭建MySQL主从服务(三)配置主从节点实现主从同步

2、master_user→Master主节点创建的用来同步的账号

3、master_password→Master主节点创建的用来同步的账号密码

4、master_port→主节点容器的端口号

Ubuntu 安装docker 搭建MySQL主从服务(三)配置主从节点实现主从同步

5、master_log_file→主节点master的file值

Ubuntu 安装docker 搭建MySQL主从服务(三)配置主从节点实现主从同步

6、master_log_pos→0:从0开始复制,也可以是主节点master的position值。

7、master_connect_retry→如果连接失败,重试的时间间隔,单位是秒,默认是60秒。

======

开启slave→start slave,执行 show slave status \G; 查看主从同步状态:

Ubuntu 安装docker 搭建MySQL主从服务(三)配置主从节点实现主从同步

 

看到该两项值为yes,说明配置成功。

主从配置完毕,检验:

主节点创建数据库test001:

Ubuntu 安装docker 搭建MySQL主从服务(三)配置主从节点实现主从同步

检查从节点:

Ubuntu 安装docker 搭建MySQL主从服务(三)配置主从节点实现主从同步

主从同步完成。