一个主机 m1 用于处理所有写请求,它的从机 s1 和另一台主机 m2 还有它的从机 s2 负责所有读请求。当 m1 主机宕机后,m2 主机负责写请求,m1、m2 互为备机。
我们知道一般情况下读请求是远远大于写请求的,所以我们会配置多个节点来应对读请求,少量节点应对写请求。
##1.搭建 MySQL 数据库主从复制
#####1.1 Master1配置
#主服务器唯一ID
server-id=1
#启用二进制日志
log-bin=mysql-bin
# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql binlog-ignore-db=information_schema
#设置需要复制的数据库 binlog-do-db=需要复制的主数据库名字
#设置logbin格式
binlog_format=STATEMENT
# 在作为从数据库的时候,有写入操作也要更新二进制日志文件
log-slave-updates
#表示自增长字段每次递增的量,指自增字段的起始值,其默认值是1,取值范围是 1 .. 65535
auto-increment-increment=2
# 表示自增长字段从哪个数开始,指字段一次递增多少,他的取值范围是1 .. 65535 auto-increment-offset=1
#####1.2 Master2配置
#主服务器唯一ID
server-id=3
#启用二进制日志
log-bin=mysql-bin
# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql binlog-ignore-db=information_schema
#设置需要复制的数据库 binlog-do-db=需要复制的主数据库名字
#设置logbin格式
binlog_format=STATEMENT
# 在作为从数据库的时候,有写入操作也要更新二进制日志文件
log-slave-updates
#表示自增长字段每次递增的量,指自增字段的起始值,其默认值是1,取值范围是 1 .. 65535
auto-increment-increment=2
# 表示自增长字段从哪个数开始,指字段一次递增多少,他的取值范围是1 .. 65535 auto-increment-offset=2
#####1.3 Slave1配置
#从服务器唯一ID
server-id=2
#启用中继日志 relay-log=mysql-relay
#####1.4 Slave2配置
#从服务器唯一ID server-id=4
#启用中继日志 relay-log=mysql-relay
#####1.5 双主机、双从机重启 mysql 服务 #####1.6 主机从机都关闭防火墙 #####1.7 在两台主机上建立帐户并授权 slave
因为这个帖子是接着上一篇帖子讲的,在上一篇我们已经做了一个主备的架构所以这里再做一次,就有两台主备了。
#在主机MySQL里执行授权命令
CREATE USER 'slave2'@'%' IDENTIFIED BY '123123';
GRANT REPLICATION SLAVE ON *.* TO 'slave2'@'%'; #此语句必须执行。否则见下面。
ALTER USER 'slave2'@'%' IDENTIFIED WITH mysql_native_password BY '123123';
#查询Master1的状态
show master status;
#####1.8 在从机上配置需要复制的主机
Slava1 复制 Master1,Slava2 复制 Master2
#复制主机的命令
CHANGE MASTER TO MASTER_HOST='主机的IP地址', MASTER_USER='slave', MASTER_PASSWORD='123123',
MASTER_LOG_FILE='mysql-bin.具体数字',MASTER_LOG_POS=具体值;
Slava1的复制命令
Slava2的复制命令
#####1.9启动两台从服务器复制功能
start slave;
#####1.10查看从服务器状态 show slave status\G;
#Slava2的复制Master2
#####1.11两个主机互相复制
Master2 复制 Master1,Master1 复制 Master2
#下面两个参数都是Yes,则说明主从配置成功! # Slave_IO_Running: Yes
Slave_SQL_Running: Yes
#####1.12 Master1 主机新建库、新建表、insert 记录,Master2 和从机复制
#####1.13 如何停止从服务复制功能stop slave;
#####1.14 如何重新配置主从stop slave; reset master;