如发现有错误或者有其他的疑问,可以联系QQ:1922626077 本人将不胜感激!!! 请各位大神指正!
一篇很有价值的mysql主从,主主复制的文章:https://www.leolan.top/index.php/posts/56.html
-
主从复制原理:一般来说主从复制即一个主服务器多个从服务器,分为同步复制和异步复制,实际一般复制中都为异步复制。
-
复制的基本过程:
1)slave端上面的IO进程连接master,并请求从指定的二进制日志文件的位置(或最新开始的日志)之后的内容;
2)master端接收到来自slave的IO线程后,通过负责复制的IO线程根据请求信息来读取指定日志(bin-log日志)之后的日志信息,返回给salve的IO进程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息已经到Master端的bin-log文件的名称以及bin-log的位置;
3)slave的IO线程接收到信息后,将接收到的日志内容依次添加到relay-log文件的末端,并将读取到的master端的bin-log的文件名和位置记录到master-info文件中,以便在下次读取的时候能够清楚的告诉master需要从哪块进行复制;
4)slave的sql进程检测到relay-log中增加了新的内容,会解析relay-log的内容成为master端真实执行时候的那些可执行的内容,并在自身执行。
MySQL主从复制的环境:
master:192.168.10.155
slave:192.168.10.177 192.168.10.188
mysql位源码安装的 5.5.22
- 配置master服务器
1)编辑master的my.cnf配置文件,设置如下参数:
server-id = 1
log-bin=mysql-bin
binlog_format=mixed(bin日志格式=混合的)
log-slave-updates=true
2)在master端启动mysql,
mysql -uroot -p123456
-
创建一个有复制权限的slave用户进行远程连接salve服务器
grant replication slave on . to ‘slave’@‘192.168.10.%’ identified by ‘123456’;
replication 复制 -
flush privileges; 刷新授权
5)show master status;
里面的file对应的mysql-bin.000048(二进制文件,前面的mysql可以进行修改,跟主机名一致)和Position(偏移量)对应的值是slave与master的同步点。
- 配置slave服务器:
1)修改slave的mysql配置文件,重启服务。
server-id = 2
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index
2)登录mysql,配置同步。