mysql主从原理及配置(主在centos,从在windows)

1 篇文章 0 订阅
1 篇文章 0 订阅

需要看原理的小伙伴可以看这个很详细 参考博客

mysql主从原理

  1. mysql支持的复制类型:

(1):基于语句的复制: 在主服务器上执行的SQL语句,在从服务器上执行同样的语句。MySQL默认采用基于语句的复制,效率比较高。一旦发现没法精确复制时, 会自动选着基于行的复制。
(2):基于行的复制:把改变的内容复制过去,而不是把命令在从服务器上执行一遍. 从mysql5.0开始支持
(3):混合类型的复制: 默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。

  1. 工作过程

整体上来说,复制有3个步骤:
(1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
(2) slave将master的binary log events拷贝到它的中继日志(relay log);
(3) slave重做中继日志中的事件,将改变反映它自己的数据。

在这里插入图片描述

列出mysql主从的版本

  1. 主master(安装在centos7.4)
    虚拟机上
  2. 从slave(安装在windows10)winodws10上的数据库版本

配置master

  1. 在配置文件加入如下(注意server-id=1,里面的值需要和从slave不一致)在这里插入图片描述
  2. 重启master: service mysqld restart
  3. 进入mysql mysql -uXXXX -pXXX,在mysql中输入show master status;在这里插入图片描述
  4. 创建用户及其为从Slave

    这里我出现了一个IP问题(VM网络NAT)导致后续配置不出来,第一张图是我本地电脑的ip,第二张图是主mysql中通过账号连接所获取的ip
    在这里插入图片描述
    show processlist;
    在这里插入图片描述 下面图中IP应为192.168.145.1,记住必须flush privileges; 否则不能及时响应
    在这里插入图片描述 在这里插入图片描述

mysql> create user 'slave1'@'localhost' identified by 'Ljt19960202!';
Query OK, 0 rows affected (0.00 sec)
mysql> grant replication slave on *.* to 'slave1'@'localhost';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

配置slave

  1. 在windows中打开如下路径文件(这文件是隐藏的,你可以显示出来在这里插入图片描述
  2. 做出如下修改 ,修改完后记得重启mysql(windows中重启就是net stop mysql80,net start mysql80)黄色字看你是如何命名的
    在这里插入图片描述
    在这里插入图片描述
  3. 启动slave,slave连接master,并开始重做master二进制日志中的事件。你不应该用配置文件进行该操作,而应该使用CHANGE MASTER TO语句,该语句可以完全取代对配置文件的修改,而且它可以为slave指定不同的master,而不需要停止服务器。注意下面红色的就是配配置master中的第三步查看内容
    mysql> change master to master_host=‘192.168.145.128’,master_port=3306,master_user=‘slave1’,master_password=‘Ljt19960202!’,
    -> master_log_file=‘master-bin.000013’,master_log_pos=1339;
    在这里插入图片描述
  4. 开启start slave;查看状态show slave status\G 红框中两个都为Yes表示成功了
    在这里插入图片描述

遇到经常故障的问题

问题:

Could not execute Delete_rows event on table o2o.tb_product_img; Can’t find record in ‘tb_product_img’, Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event’s master log master-bin.000009, end_log_pos 511

解决方法:最简单直接从机可以直接跳过。

stop slave;set global sql_slave_skip_counter=1;start slave;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值