centos7配置mysql主从:一主多从

mysql主从复制原理
1.首先master将数据更新记录到二进制binlog文件
2.slave通过I/O线程向master请求binlog日志文件指定位置之后的内容
3.master接收到slave的io请求之后,就会从binlog相应的位置点开始,给slave传日志
4.slave接收到日志后,会写入本地的relay log中继日志中
5.slave通过sql线程读取中继日志的内容,在数据库中执行相应的操作,到此为止,master和slave上的数据一致,之后slave服务器进入等待状态,等待master的后续更新

系统环境

服务器 IP地址 操作系统 mysql版本
Mysql_smater 10.44.*.* Centos7 64位  5.6.43
Mysql_slave1 10.44.*.* Centos7 64位  5.6.43
Mysql_slave2 10.44.*.* Centos7 64位  5.6.43

mysql是通过源码编译安装,配置文件:/etc/my.cnf,测试同步数据库:test

一、在master上操作

(1)修改master的配置文件,在[mysqld]下面添加如下配置内容

log_bin=mysql-bin
server-id=1
binlog_do_db=test

(2)如果开启了firewalld防火墙,需要开放mysql端口

(3)重启mysql

service mysqld restart;

 (4)创建test数据库,并导入表结构

(5)查看bin-log和master状态

mysql> show variables like "log_bin";
mysql> show master status;

(6)创建同步用户

mysql>grant replication slave on *.* to 'lxmtest1'@'10.44.2.120' identified by 'lxmtest1123456';
mysql>grant replication slave on *.* to 'lxmtest1'@'10.44.0.70' identified by 'lxmtest1123456';
mysql> select user,host from mysql.user; 

 

二、salve1、salve2从库服务器上操作

(1)在两台从库的数据库上创建test数据库,并创建表结构

(2)修改slave的配置文件,在[mysqld]下面添加如下配置内容

server-id=2  #slave ID,另一台配置成3
relay_log=/var/lib/mysql/mysql-replay-bin.70  #必须指定至少其中一台,不然会报错,默认的会被另一台从库占用
replicate-do-db=test #指定同步的数据库

(3)重启两台slave的mysql

service mysqld restart

(4)分别在两台slave上创建主从同步

mysql>change master to  master_host='主服务器ip', master_port=3306, master_user='lxmtest1', master_password='lxmtest1123456', master_log_file='mysql-bin.000001', master_log_pos=0;
mysql>start slave;
mysql>show slave status\G

测试
(1)在master上导入的数据

(2)查看master和slave状态的Position是否一致

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章