问题描述:在安装cdh元数据myslq高可用时,使用的是myslq主主复制+keepalived实现。期间发现切换时,出现如下异常信息!
花了很长时间寻找问题的原因。因为切换的时候,使用本机命令行是可以连接的,但是夸服务器就无法连接,没有去这方面的尝试,后来使用navicate无法连接后,就推测是mysql高可用切换的问题导致的。
问题分析:如果不重启keepalived,是无法实现切换和连接的。以下问题就是由于这个原因导致的,本质是无法连接mysql,不是jar包的问题。网上很多人的异常是因为mysql驱动问题,错误不太一样 。
解决方案:
1)尝试手工重启services keepalived restart ,后问题解决
2)当mysql切换的时候,自动重启另外一台服务器的keepalived。通过配置脚本的方式来解决。本质原因还是在重启的时候不能执行:
/opt/model/keepalived-2.0.0/shell/sqlCdh2.sh
#!/bin/bash
service keepalived restart
cat /opt/model/keepalived-2.0.0/shell/restartCdh2Keepalived.sh
ssh root@172.17.10.153 nohup /opt/model/keepalived-2.0.0/shell/sqlCdh2.sh >/opt/model/keepalived-2.0.0/shell/result.txt 2>&1 &
调用重启
cat /root/shutdown
/opt/model/keepalived-2.0.0/shell/restartCdh2Keepalived.sh
sleep 10#这句话必须要加上,否则不能重启另外一台服务的keepalived
killall keepalived
cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id mysql-ha
}
vrrp_instance VI_1 {
state BACKUP
interface ens32
virtual_router_id 201
#优先级,高优先级竞选为master
priority 100
advert_int 1
#设置为不抢占 注:这个配置只能设置在backup主机上,而且这个主机优先级要比另外一台高,另一台不要设置这个选项
nopreempt
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
172.17.10.155
}
}
virtual_server 172.17.10.155 3306 {
delay_loop 2
lb_algo rr
lb_kind DR