分享

五、MySQL主从复制搭建

 bylele 2020-02-24

文章目录

以下的主从复制搭建的环境介绍:

(1)主机是在Windows下搭建的数据库

(2)从机是在centos7下搭建的数据库

(3)主机和从机是在同一个网关下

一、复制的基本原理

1、slave会从master读取binlog来进行数据同步

2、三步骤+原理图

在这里插入图片描述

MySQL复制过程分成三步:

(1)master将改变记录到二进制日志==(binary log)==。这些记录过程叫做二进制日志事件,binary log events;

(2)slave将master的binary log events拷贝到它的中继日志==(relay log)==;

(3)slave重做中继日志中的事件,将改变应用到自己的数据库中。 MySQL复制是异步的且串行化的

注意:

(1)从机开始复制的内容是连接到主机之后的内容

(2)redis的主从复制是直接复制主机上的所有内容,只要连接上就是复制所有的内容!这是mysql和redis的主从复制的区别

(3)主从复制是靠日志文件进行操作的

二、复制的基本原则

(1)每个slave只有一个master

(2)每个slave只能有一个唯一的服务器ID

(3)每个master可以有多个salve

三、复制的最大问题

MySQL主从复制的最大问题是**“延时”**

建议:

我们在操作数据库的时候,尤其是插入数据的操作,不能刚插进去就取出(虽然时间很短),最好中间有其它事情执行之后再进行操作。

四、一主一从常见配置

1、mysql版本一致且后台以服务运行

2、主机、从机都配置在==[mysqld]==结点下,都是小写

3、主机(Windows10)修改my.ini配置文件

在这里插入图片描述

(1)主服务器唯一ID

server-id=1

(2)启用二进制日志

log-bin=自己本地的路径/data/mysqlbin

log-bin=D:/devSoft/MySQLServer5.5/data/mysqlbin

(3)设置不要复制的数据库

binlog-ignore-db=mysql

(4)设置需要复制的数据库

binlog-do-db=需要复制的主数据库名字(配置完主机和从机之后,再配,记住这个地方别忘了)

(5)设置logbin格式

binlog_format=STATEMENT(默认)

binlog_format=STATEMENT(默认)

binlog_format=ROW

在这里插入图片描述

4、 mysql主从复制起始时,从机不继承主机数据

5、从机(centos7)配置文件修改my.cnf的[mysqld]栏位下

设置下面连个地方:

  • server-id = 2

    注意:my.cnf 中有server-id = 1(没有的话更好)

  • relay-log=mysql-relay

6、 因修改过配置文件,请主机+从机都重启后台mysql服务

centos: 
	systemctl restart mysqld
windows:
	下面有截图

7、主机从机都关闭防火墙

(1)windows手动关闭

第一步:

安全工具关上:腾讯管家

​ 360不影响

第二步:

在这里插入图片描述

在这里插入图片描述

(2)Linux关闭防火墙

关闭虚拟机linux防火墙 systemctl stop firewalld

8、在Windows主机上建立帐户并授权slave

GRANT REPLICATION SLAVE ON . TO 'zhangsan'@'从机器数据库IP' IDENTIFIED BY '123456';

在这里插入图片描述
查询master的状态

show master status;

在这里插入图片描述

记录下File和Position的值,后面需要用到

执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化

9、在Linux从机上配置需要复制的主机

CHANGE MASTER TO MASTER_HOST='主机IP(查看后面的说明)',
MASTER_USER='zhangsan',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='File名字',
MASTER_LOG_POS=Position数字;

#示例:
CHANGE MASTER TO MASTER_HOST='192.168.124.3',
MASTER_USER='zhangsan',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysqlbin.具体数字',
MASTER_LOG_POS='具体值';

在这里插入图片描述

主机的 IP要和从机的 IP在同一个网关之下:

主机(Windows10)从机(centos7)

在这里插入图片描述
启动从服务器复制功能

start slave;

show slave status\G;

在这里插入图片描述

下面两个参数都是Yes,则说明主从配置成功!

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

10、主机新建库、新建表、insert记录,从机复制

11、如何停止从服务复制功能

stop slave;

12、如何重新配置主从

stop slave;

reset master;

13、注意

mysql和redis的不同之处是,mysql是复制连接主机之后的内容,redis是复制主机上的所有内容

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多