MySQL -主从复制

主从复制原理

MySQL -主从复制
MySQL的复制过程分三步:
Master将更新记录到二进制日志文件,这些记录过程叫做二进制日志事件。
Slave拷贝Master的二进制日志事件到它的中继日志。
Slave重做中继日志中的事件,把数据改变应用到自己的数据库中。

主从复制配置

主从配置的基本规则

  • 每个slave只有一个master
  • 每个slave只能有一个唯一的server-id
  • 每个master可以有多个slave

一主一从配置示例

实验环境说明:Master和Slave都是在centos7系统下,mysql数据库版本5.5.48.

Master配置文件的设置(/etc/my.cnf)

配置是在mysqld节点下的
MySQL -主从复制
以下两个选项是可选配置:

    binlog-ignore-db=<数据库名> #设置不需要复制的数据库
    binlog-do-db=<数据库名> #设置需要复制的数据库,不设置复制所有

Slave配置文件的设置(my.cnf)

配置是在mysqld节点下的
MySQL -主从复制

重启Master和Slave的mysql服务

service mysql stop
service mysql start
或
systemctl restart mysql

关闭Master和Slave的防火墙

systemctl stop firewalld.service;

在Master上建立账户并授权slave

在mysql下执行下列语句:

GRANT REPLICATION SLAVE ON *.* TO 'zhangsan'@'192.168.52.128' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;

查看File和Position的值

SHOW MASTER STATUS;

MySQL -主从复制

在slave上配置复制的master

CHANGE MASTER TO MASTER_HOST ='192.168.150.100',MASTER_USER='zhangsan',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=341;

MASTER_LOG_FILE和,MASTER_LOG_POS的值就是由master上查询的结果决定的。

结果验证

在slave的mysql下查看slave的状态

show slave status\G

MySQL -主从复制
以上两个选项都是Yes表示配置成功。