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_smater10.44.*.*Centos7 64位 5.6.43
Mysql_slave110.44.*.*Centos7 64位 5.6.43
Mysql_slave210.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是否一致

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值