linux中mysql主从_linux中mysql主从复制原理及配置

c71c88bc4576d2be12f4769094c1056c.png

原理:

1、master服务器上的数据发生改变时,会将改变的数据记录到二进制binlog日志中。

2、当slave服务器发现master的binlog发生改变时,会开启一个I/O线程去请求连接master服务器,并请求从指定binlog日志文件的指定位置之后发送binlog日志内容。

3、当master服务器收到来自slave服务器的I/O线程请求后,master会开启一个dump线程,用来将指定binlog日志文件指定位置之后的内容返回给slave服务器。

4、当slave服务器的I/O线程获取到master的binlog日志内容后,会保存到slave本地的relay log(中继日志)文件(msql-relay-bin.xxxxxx)中。

5、slave服务器的SQL线程会从relay log文件中读取日志信息,并解析成sql语句逐一执行,使其数据和master保持一致。应用完毕后的relaylog会被清理掉。

注意事项:

1、master一定要开启binlog日志功能(默认是关闭的),然后授予slave远程连接的权限。

2、mysql主从复制,至少需要两个mysql服务。并且master和slave服务器上的mysql版本最好相同(如果不一致,那么要保证slave版本不低于master版本)。

3、master和slave两节点间时间需同步。

主从复制安装配置

1、基础环境准备

#操作系统

centos6.5#mysql版本5.7#两台虚拟机:

node1:192.168.20.12(主)

node2:192.168.20.14 (从)

3、在两台数据库中分别创建数据库

create database mydb;

mysql默认情况下binlog是关闭的,如下:

28ee5002b271f396be8c258c2f6118fc.png

4、在主(node1)服务器上,进行如下配置:

# 修改配置文件,执行以下命令打开mysql配置文件

vi/etc/my.cnf

# 在文件的最下面增加如下配置信息

log-bin=master-bin #binlog二进制文件名称

binlog-format=ROW #binlog二进制格式。有row、statement、mixed三种格式

server-id=1#唯一标识,主从不一样就行

binlog-do-db=mydb #同步的数据库名称

11f8760b60801f32776bcfc5e8505215.png

5、在主(node1)服务器上,登录mysql服务,配置从库登录主库的账号并授权:

set global validate_password_policy=0;set global validate_password_length=4;

grant replication slave on*.* to 'root'@'%' identified by '123456';

flush privileges;

6、查看master状态(之前配置过,所有下面的file是从000003开始,否则应该是000001)

55d0269ce3de8d587e560c8268ac732c.png

现有的master log信息(日志文件是在保存在/var/lib/mysql下)

4b161492fcefbba89059930ecfb39dc1.png

7、重启mysql服务,然后在从(node2)服务器上配置:

change master to

master_host='192.168.20.12', #主库地址

master_user='root', #授权账户

master_password='123456', #授权账户密码

master_port=3306, #主库端口

master_log_file='master-bin.000003', #下次同步的主库起始binlog文件

master_log_pos=154; #下次同步的主库起始位置

这里的配置,必须跟第6步中主服务器状态的值一一对应(特别是master_log_file和master_log_pos)

8、启动slave主从复制

start slave;

9、检查slave状态

show slave status\G

c1ae05eb091855ae4e1c1e830476eaab.png

从上面可以看到主从复制的相关配置信息。如果Slave_IO_Running=Yes,Slave_SQL_Running=yes,则表示配置成功

在从服务器/var/lib/mysql目录下,可以看到多了几个relay-bin中继日志文件:

41b6c5ee4b5b68632eea20aa20015c6d.png

10、此时可以在主服务器上进行相关的增删改操作,在从服务器上查看结果是否同步

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值