master 1 为处理写请求;
master 2 和 两个从机(slave1,slave2)负责读请求;
当master 1 宕机时,由master 2 负责写请求,两个从机负责读请求;
master 1 和 master 2 为各自的备机
Startup failed: Timed out waiting for a signal from the JVM.
vim conf/wrapper.conf
# 启动超时时间
wrapper.startup.timeout=120
mysql -uroot -p -h192.168.171.101 -P8066

master 1
#主服务器唯一id
server-id=1
#启动二进制日志
log-bin=mysql-bin
#设置不需要复制的数据库(可设置多个)
binlog-ignore-db=information_schema
binlog-ignore-db=mycat
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
#设置需要复制的数据库
binlog-do-db=mycat_01
#设置binlog格式
binlog_format=STATEMENT
#以下为 双主双从 额外的配置
#表示在作为从机的时候,有写操作的时候也要更新二进制日志
log-slave-updates
#表示每次自增的量,默认是 1 ,因为是双主双从,所以需要更改为 2 避免重复,范围:1 ~ 65535
auto-increment-increment=2
#表示自增起始数字,该机器起始为1 自增后为 1,3,5,7,9....
auto-increment-offset=1

红框内为 双主双从 配置
master 2
#主服务器唯一id
server-id=3
#启动二进制日志
log-bin=mysql-bin
#设置不需要复制的数据库(可设置多个)
binlog-ignore-db=information_schema
binlog-ignore-db=mycat
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
#设置需要复制的数据库
binlog-do-db=mycat_01
#设置binlog格式
binlog_format=STATEMENT
#以下为 双主双从 额外的配置
#表示在作为从机的时候,有写操作的时候也要更新二进制日志
log-slave-updates
#表示每次自增的量,默认是 1 ,因为是双主双从,所以需要更改为 2 避免重复,范围:1 ~ 65535
auto-increment-increment=2
#表示自增起始数字,该机器起始为1 自增后为 2,4,6,8,10....
auto-increment-offset=2

红框内是与 maser 1 的区别
slave 1 和 slave 2 ,只有server-id不同
#从服务器唯一id
server-id=2
#启动中继日志
relay-log=mysql-relay

重启 4 台mysql,并查看mysql状态,确保启动成功,命令:
systemctl restart mysqld
systemctl status mysqld
在从机上配置需要复制的主机
slave 1 复制 master 1
slave 2 复制 master 2
查看主机状态,命令:
show master status \G
查看主机状态后,不要进行sql操作,需保证从机接入点与各自主机一致

复制主机,命令:
#复制主机的命令
CHANGE MASTER TO MASTER_HOST='主机的IP地址',
MASTER_USER='slave1', MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.具体数字',
MASTER_LOG_POS=具体值;

启动slave,命令:
start slave;
查看两台 slave 状态,命令:
show slave status \G

确保都是 Yes,如果不是,查看黄色框内报错原因。
停止从复制,命令:
stop slave;
重新配置 主,命令:
reset master;
配置 master 1 和 master 2 互为主备
master 1 复制 master 2
master 2 复制 master 1

开启 slave 并查看状态,确保都是 Yes



end...