主从复制

1.运行容器
docker run --name mysql-master --restart=always -v /root/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /root/docker/mysql/logs:/logs -v /root/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d -i -p 3306:3306 mysql:latest

docker run --name mysql-slave --restart=always -v /root/docker/mysql/conf/my2.cnf:/etc/mysql/my.cnf -v /root/docker/mysql/logs2:/logs -v /root/docker/mysql/data2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d -i -p 3307:3307 mysql:latest

2.Slave的配置文件
[mysqld]
## 设置server_id,注意要唯一
server-id=101  
## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
log-bin=mysql-slave-bin   
## relay_log配置中继日志
relay_log=mysql-relay-bin  
read_only=1  ## 设置为只读,该项如果不设置,表示slave可读可写

3.Master
show master status

4.记住File和Position,后面需要用到。此时一定不要操作Master库,否则将会引起Master状态的变化,File和Position字段也将会进行变化。
docker inspect --format='{{.NetworkSettings.IPAddress}}' mysql-master

5.Slave
change master to master_host='172.17.0.2', master_user='root', master_password='12345678', master_port=3306, master_log_file='master-bin.000001', master_log_pos=3552, master_connect_retry=30;

master_host :Master库的地址,指的是容器的独立ip,可以通过
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称 | 容器id查询容器的IP进行查询:
master_port:Master的端口号,指的是容器的端口号
master_user:用于数据同步的用户
master_password:用于同步的用户的密码
master_log_file:指定 Slave 从哪个日志文件开始复制数据,即上文中提到的 File 字段的值
master_log_pos:从哪个 Position 开始读,即上文中提到的 Position 字段的值
master_connect_retry:如果连接失败,重试的时间间隔,单位是秒,默认是60秒

启动slave
start slave

查询slave
show slave status;

 

上一篇:网络基础之vrrp


下一篇:【Rust】引用匹配