关于docker:Docker中MySQL主从复制

36次阅读

共计 1195 个字符,预计需要花费 3 分钟才能阅读完成。

MySQL 主从复制

一、配置 Master(主)

[mysqld]
## 同一局域网内留神要惟一
server-id=100
## 开启二进制日志性能,能够轻易取(要害)log-bin=mysql-bin

二、配置 Slave(从)

2.1 这里我用了间接 copy 法,把里面文件夹曾经写好配置的 my.cnf 间接 copy 到 Slave 库中,不必从新下载 Vim,没那么多内存

[mysqld]
## 设置 server_id, 留神要惟一
server-id=101  
## 开启二进制日志性能,以备 Slave 作为其它 Slave 的 Master 时应用
log-bin=mysql-slave-bin   
## relay_log 配置中继日志
relay_log=edu-mysql-relay-bin  

2.2 在 Master 进入 mysql,执行

show master status;

2.3 查看容器运行的各种数据,其中 IPAddress 就是容器 IP

docker inspect 容器 ID

Slave 的 IP:

Master 的 IP:

## 这是一条错误代码
change master to master_host='本人的 IP', master_user='slave', master_password='本人的明码', master_port= 端口, master_log_file='mysql-bin.000001', master_log_pos= 704, master_connect_retry=30;

2.4 查看主从同步状态。

show slave status \G;

Error:报错
error connecting to master 'slave@本人的 IP: 端口' - retry-time: 30 retries: 16 message: Authentication plugin 'caching_sha2_password' reported 
error: Authentication requires secure connection.


查了具体起因:因为博客里博主的 master 库用的是 slave 用户名,而我的 master 库应用的是 root,所以无奈正确链接到 master 库

2.5 解决办法:先进行,而后从新批改用户名再重启即可

Stop SLAVE IO_THREAD;

change 批改用户名 root
change master to master_host='本人的 IP', master_user='root', master_password='明码', master_port= 端口, master_log_file='mysql-bin.000001', 
master_log_pos= 704, master_connect_retry=30;

2.6 从新查看

show slave status \G;


SlaveIORunning 和 SlaveSQLRunning 都是 Yes

2.7 阐明主从复制曾经开启。此时能够测试数据同步是否胜利。

正文完
 0