Mysql 主从复制集群模式

本文基于 Centos 7,Docker 模拟 mysql,redis 配合使用的集群

一. 搭建 mysql 集群

1. 编写 mysql 主服务器的配置文件和数据保存

vi /etc/mysql-m/conf/my.cnf

  my.cnf 内容 

[mysqld]
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/run/mysqld/mysqld.sock
datadir=/var/lib/mysql
server-id=1
log-bin=mysql-master-bin

  启动mysql主服务器

docker run -itd -p 3306:3306 --name mysql-m --privileged=true -e MYSQL_ROOT_PASSWORD=root -v /etc/mysql-m/conf:/etc/mysql/conf.d -v /etc/mysql-m/data:/var/lib/mysql mysql

  查看主服务器容器ip

docker inspect mysql-m | grep IPAddress
# "IPAddress": "172.17.0.4"

  查看主库 二进制文件 和 偏移量

docker exec -it mysql-m mysql -u root -p
show master status;

Mysql 主从复制集群模式_第1张图片

 

2. 编写 mysql 从服务器配置文件 

vi /etc/mysql-s/conf/my.conf
[mysqld]
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/run/mysqld/mysqld.sock
datadir=/var/lib/mysql
server-id=2
log-bin=mysql-slave-bin

  启动从服务器 

docker run -itd -p 3316:3306 --name mysql-s --privileged=true -e MYSQL_ROOT_PASSWORD=root -v /etc/mysql-s/conf:/etc/mysql/conf.d -v /etc/mysql-s/data:/var/lib/mysql mysql

 3. 主从关系绑定

  进入从库

docker exec -it mysql-s mysql -u root -p

  绑定主从关系:配从不配主

  master_log_pos 和 master_log_file 的值要与上面查到的主库状态值一致

change master to master_host='172.17.0.4',master_port=3306,master_user='root',master_password='root',master_log_pos=156,master_log_file='mysql-master-bin.000003';

# master_log_pos: Position
# master_log_file: File

  启动主从复制 

start slave;

  查看主从复制状况

show slave status\G;

  若 I/O_Running 线程和 SQL _Runing 线程都是 YES,则绑定成功

 

你可能感兴趣的:(mysql,Java,mysql,数据库,docker)