MySQL一主一从

2022/4/17 2:12:44

本文主要是介绍MySQL一主一从,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

 

 

 环境:

  系统:centos7 x3

  master:192.168.220.133

  slave1:192.168.220.136

  slave2:192.168.220.137

主从复制步骤思路 

1.slave服务器上执行change master to ,启动start slave,主从复制启动

2.此时sql的io线程会通过(change master 指定的在master服务器授权的用户)请求连接master,并从指定的logbin文件的指定位置pos点,发送数据

3.master 收到io线程的请求,然后就会启动一个dump线程,分批读取logbin指定位置之后的语句发给你slave,除此之后,还给了下次我要用那个logbin和pos点

4.当slave io线程拿到logbin文件之后,就放在relaylog中,并且将master给的下次连接的logbin和pos点一起保存,

5.slave sql线程检测到relaylog有变化,就读取,并执行,
 

  

主从复制搭建的前提:
  1、主从mysql版本一致
  2、主库开启binlog日志(设置log-bin参数)
  3、主从server-id不同


1、从库服务器能连通主库

[localhost~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent

2、主库和从库数据一致

3、主库在配置文件中开启二进制日志功能server-id不同:(vim /etc/my.cnf)

log-bin=mysql-bin
server-id=1 2 #server-id不同

 

4、主库授权从库

格式:grant replication slave on *.* to '授权用户'@'从库IP' identified by '授权密码';
mysql>grant replication slave on *.* to 'slave'@'192.168.0.*' identified by 'slave123';

5、刷新策略

mysql>flush privileges;

 6、master:查看日志文件

mysql>show master status\G;

 

 

 7、slave:从库配置同步参数

格式:
  change master to
  master_host='主库IP',
  master_user='授权用户',
  master_password='授权密码',
  master_log_file='mysql-bin.000001', 主库日志文件
  master_log_pos=453; position
  start slave; 启动主从同步

mysql>change master to master_host='192.168.220.133',master_user='slave',master_password='root',master_log_file='mysql-bin.000003',master_log_pos=931;

8、slave :开启同步,检查同步状态

mysql>start slave;
mysql>show slave status\G;  #Slave_IO_Running及Slave_SQL_Running均为Yes即为配置成功

 

 

 

这里就部署完成!!!

 

注:

  Slave_IO_Running及Slave_SQL_Running均为Yes即为配置成功
  Slave_IO_Running 负责读取主库的二进制日志并写入从库的中继日志中
  Slave_SQL_Running 负责将中继日志转换成SQL语句后执行
  如果有一个不是Yes,请仔细检查上边的所有配置
发现错误先停止主从同步
  stop slave;
修改完成后再启动主从同步
  如果是Connecting,就是从库无法访问主库
  如果是No,日志文件名及日志位置没有对应

 



这篇关于MySQL一主一从的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程