环境准备
为了搭建MySQL数据库主从复制(双主双从模式),准备一下四台服务器,并明确了各节点的角色及IP地址。
双主双从配置过程
一、双主机配置
1、Master1节点配置
修改配置文件:vim /etc/f,主要修改内容如下:
#主服务器唯一ID server-id=1#启用二进制日志log-bin=mysql-bin# 设置不要复制的数据库(可设置多个) binlog-ignore-db=mysqlbinlog-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
2、Master2配置
修改配置文件:vim /etc/f,主要修改内容如下:
#主服务器唯一ID server-id=3#启用二进制日志log-bin=mysql-bin# 设置不要复制的数据库(可设置多个) binlog-ignore-db=mysqlbinlog-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、Slave1配置
修改配置文件:vim /etc/f,主要修改内容如下:
#从服务器唯一ID server-id=2#启用中继日志relay-log=mysql-relay
2、Slave2配置
修改配置文件:vim /etc/f,主要修改内容如下:
#从服务器唯一ID server-id=4#启用中继日志relay-log=mysql-relay
三、双主机、双从机重启mysql服务
四、主机从机都关闭防火墙
五、在两台主机上建立帐户并授权slave
#在主机MySQL里执行授权命令grant replication slave on *.* to ‘htzw’@‘192.168.67.%’ identified by ‘123456’;#查询Master1的状态show master status;
#查询Master2的状态show master status;
分别记录下File和Position的值
执行完此步骤后不要再操作主服务器MySQL,防止主服务器状态值变化
六、在从机上配置需求复制的主机
Slave1复制Master1,Slave2复制Master2
#复制主机的命令mysql> CHANGE MASTER TOMASTER_HOST='master_host_name',MASTER_PORT='master_port'MASTER_USER='replication_user_name',MASTER_PASSWORD='replication_password',MASTER_LOG_FILE='recorded_log_file_name',MASTER_LOG_POS=xxx;
Slave1的复制命令如下
CHANGE MASTER TOMASTER_HOST='192.168.67.140',MASTER_PORT=3306,MASTER_USER='htzw',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000036',MASTER_LOG_POS=107;
Slave2的复制命令如下
CHANGE MASTER TOMASTER_HOST='192.168.67.180',MASTER_PORT=3306,MASTER_USER='htzw',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000038',MASTER_LOG_POS=107;
启动两台从服务器复制功能
start slave;
查看从服务器的状态
show slave status\G
Slave1的复制Master1
Slave2的复制Master2
下面两个参数都是Yes,则说明主从配置成功!
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
七、两个主机互相复制
Master2复制Master1,Master1复制Master2
Master2的复制命令如下
CHANGE MASTER TOMASTER_HOST='192.168.67.140',MASTER_PORT=3306,MASTER_USER='htzw',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000036',MASTER_LOG_POS=107;
Master1的复制命令如下
CHANGE MASTER TOMASTER_HOST='192.168.67.180',MASTER_PORT=3306,MASTER_USER='htzw',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000038',MASTER_LOG_POS=107;
启动两台主服务器复制功能
start slave;
查看两台主服务器的状态
show slave status\G
Master2的复制Master1
Master1的复制Master2
八、Master1主机新建库、新建表、insert记录,Master2和从机复制
九、如何停止从服务复制功能
stop slave;
十、如何重新配置主从
stop slave;reset master;