mysql+mycat+keepalive+haproxy高可用集群(一)
mysql+mycat+keepalive+haproxy高可用集群搭建
集群架构图
开局一张图,内容全靠编
这是mysql+mycat+keepalive+haproxy高可用集群搭建系列...
填坑总结
坑一: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
问题背景:
检查从服务器复制功能状态,执行命令show slave status \G
,发现error
mysql> show slave status \G *************************** 1. row *************************** Slave_IO_State: Master_Host: 192.168.1.150 Master_User: copy Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 437 Relay_Log_File: mysql-154-slave-relay-bin.000001 Relay_Log_Pos: 4 Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: No Slave_SQL_Running: Yes Last_IO_Errno: 1593 Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work. ............................ 1 row in set (0.00 sec)
问题原因:
#从节点的数据库是复制主节点来的。所以从节点下server-uuid,与主节点冲突了 [root@mysql-154-slave 3307]# pwd /home/mysql/data/3307 [root@mysql-154-slave 3307]# cat auto.cnf [auto] server-uuid=6b0dedc2-7a5c-11eb-8944-000c291220ce [root@mysql-154-slave 3307]# [root@mysql-150-master 3306]# cat auto.cnf [auto] server-uuid=6b0dedc2-7a5c-11eb-8944-000c291220ce [root@mysql-150-master 3306]#
问题解决:
#关闭从节点服务,重新在生成一个uuid,在auto.cnf [root@mysql-152-slave mysql]# /home/mysql/mysql-5.7.22/bin/mysqladmin -uroot -p -P3307 -h127.0.0.1 shutdown [root@mysql-152-slave mysql]# /home/mysql/mysql-5.7.22/bin/mysqladmin -uroot -p -P3308 -h127.0.0.1 shutdown [root@mysql-153-slave mysql]# /home/mysql/mysql-5.7.22/bin/mysqladmin -uroot -p -P3307 -h127.0.0.1 shutdown [root@mysql-153-slave mysql]# /home/mysql/mysql-5.7.22/bin/mysqladmin -uroot -p -P3308 -h127.0.0.1 shutdown [root@mysql-154-slave 3307]# /home/mysql/mysql-5.7.22/bin/mysqladmin -uroot -p -P3307 -h127.0.0.1 shutdown [root@mysql-154-slave 3307]# /home/mysql/mysql-5.7.22/bin/mysqladmin -uroot -p -P3308 -h127.0.0.1 shutdown
坑二:配置主从时,my.cnf设置server-id=150_3306,导致mysql启动立即失败
表示server编号,编号要唯一,切记这个id不能是字符串例如:150_3306 只能是整型 server-id=1503306
坑三:在master1创建库,能同步到master2,但是不能同步到从slave2
操作1:在master1创建了test数据库,可以同步到master2,slave152-3307,slave153-3307,slave154-3307
操作2:在master2创建了test2数据库,可以同步到master1,slave152-3308,slave153-3308,slave154-3308
问题描述:test并没有同步到slave152-3308,slave153-3308,slave154-3308,
test2也没有同步到master2,slave152-3307,slave153-3307,slave154-3307
问题解决:
当150节点作为主节点时,151担任从节点,需要在151上开启从节点binlog功能
开启log-slave-updates参数后,从库从主库复制的数据会写入log-bin日志文件里
###修改151节点配置文件3306.cnf #在双主模式中,log-slave-updates 配置项一定要配置,否则在master1上进行了更新数据,在master2和slave1上会更新,但是在slave2上不会更新 log-slave-updates=on
同理在150节点上也要加上配置,其他的从节点不需要加这个配置
###修改150节点配置文件3306.cnf log-slave-updates=on