使用Docker搭建MySQL双主热备+Keepalived高可用集群 使用Docker搭建MySQL双主热备+Keepalived高可用集群首先,准备两台Linux主机,并且安装好dockerMaster1:10.122.52.101Master2:10.122.52.102VIP:10.122.52.108第二步,搭建主主集群,这个参考MySQL主主集群搭建的笔记MySQL主主配置实践第三步,开始在Master1服务器上安装Keepalived修改配置文件vi/etc/my.cnf添加如下配置,下面的server-id要保证在这个集群里面的唯一性server-id=1log-bin=mysql-binrelay-log=mysql-relay安装keepalivedyum-yinstallkeepalivedvi/etc/keepalived/keepalived.conf修改配置文件如下:!ConfigurationFileforkeepalivedglobal_defs{router_idMySQL-Master#router_id可以自定义}vrrp_instanceVI_1{stateMASTER#设置为MASTERinterfaceens33#设置为本机的网卡virtual_router_id51priority100#优先级100advert_int1authentication{auth_typePASSauth_pass1111}virtual_ipaddress{10.122.52.108#设置VIP}}virtual_server10.122.52.2013306{#监听VIP3306端口delay_loop6lb_algorrlb_kindDR#使用DR模式轮循net_mask255.255.255.0persistence_timeout50protocolTCPreal_server10.122.52.1013306{#本机MySQL开启3306weight1TCP_CHECK{#健康检查connect_timeout3nb_get_retry3delay_before_retry3connect_port3306#设置连接端口3306}}real_server10.122.52.1023306{#Master2服务器MySQLweight1TCP_CHECK{connect_timeout3nb_get_retry3delay_before_retry3connect_port3306}}}启动keepalivedservicekeepalivedstart第四步,开始在Master2服务器上安装Keepalived修改配置文件vi/etc/my.cnf添加如下配置,下面的server-id要保证在这个集群里面的唯一性server-id=1log-bin=mysql-binrelay-log=mysql-relay安装keepalivedyum-yinstallkeepalivedvi/etc/keepalived/keepalived.conf修改配置文件如下:!ConfigurationFileforkeepalivedglobal_defs{router_idMySQL-Backup}vrrp_instanceVI_1{stateBACKUP#设置为BACKUPinterfaceens33virtual_router_id51priority50advert_int1authentication{auth_typePASSauth_pass1111}virtual_ipaddress{10.122.52.108}}virtual_server10.122.52.1083306{delay_loop6lb_algorrlb_kindDRpersistence_timeout50net_mask255.255.255.0protocolTCPreal_server10.122.52.1013306{weight1TCP_CHECK{connect_timeout3nb_get_retry3delay_before_retry3connect_port3306}}real_server10.122.52.1023306{weight1TCP_CHECK{connect_timeout3nb_get_retry3delay_before_retry3connect_port3306}}}启动Keepalivedservicekeepalivedstart第五步验证验证主主备份的效果分别连接Master1和Master2的MySQL服务器在Master1中创建一个测试的数据库,然后在Master2中查询这个数据库里面的
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
,如果存在,则说明它们互为主备。CREATEtablestudents(idintnotnull,namevarchar(100))insertintostudentsvalues(1,'daniel')select*fromstudents验证Keepalived的效果使用VIP连接上MySQL数据库,插入一条记录,然后,在另外两个Master1和Master2的连接中查询,如果都存在,则说明keepalived的VIP正常工作。随意停止一个服务器Master1或者Master2,然后,再使用VIP的连接来插入和查询数据,正常,则说明keepalived正常工作。(注意:当停止的服务器是vip当前连接的Master服务器,则会有几秒的卡顿)参考:/Milend/article/details/107976295 -全文完-