在centos 中创建两个mysql容器

docker run --name q_master -p 13306:3306  -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest --character-set-server=utf8 --collation-server=utf8_general_ci

docker run --name q_slave -p 13307:3306  -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest --character-set-server=utf8 --collation-server=utf8_general_ci

通过命令更改master和slave的配置文件

master:

 

 

slave配置:

 

 

更改配置文件通过  vi my.cnf,更改,进入对应的容器,cd /etc/mysql切换到/etc/mysql目录下,然后vi my.cnf对my.cnf进行编辑

如果出现  bash: vi: command not found,需要我们在docker容器内部自行安装vim。使用apt-get install vim命令安装

配置编写完成后,保存退出

在Master进入mysql(Navicat Premium-工具-命令列界面),执行show master status;

 

Slave 中进入 mysql,执行change master to master_host='172.17.0.2', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000003', master_log_pos= 155, master_connect_retry=30;

开启同步 

根据同步日志:

1.

Authentication plugin 'caching_sha2_password' cannot be loaded: ....

最新版本密码规则变化导致

可对slave账号进行如下相同的处理:

 

 

 

COULD NOT FIND FIRST LOG FILE NAME IN BINARY LOG INDEX FILE

则先停止从库,停止命令 stop salve获取最新的同步文件后再次执行命令即可