[root@wallet01 ~]# mysql -uroot -pabcd.1234
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.202
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 120
Relay_Log_File: relay-bin.000002
Relay_Log_Pos: 283
Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
[root@wallet02 ~]# mysql -uroot -pabcd.1234
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.201
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000007
Read_Master_Log_Pos: 120
Relay_Log_File: relay-bin.000008
Relay_Log_Pos: 283
Relay_Master_Log_File: mysql-bin.000007
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
[root@wallet01 ~]# yum install -y libnl libnl-devel
[root@wallet01 ~]# cd /usr/local/src
[root@wallet01 src]# tar zxvf keepalived-1.2.19.tar.gz
[root@wallet01 src]# cd keepalived-1.2.19
[root@wallet01 keepalived-1.2.19]# ./configure --sysconf=/etc --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64
[root@wallet01 keepalived-1.2.19]# make && make install
[root@wallet01 keepalived-1.2.19]# ln -s /usr/local/sbin/keepalived /sbin/
[root@wallet01 ~]# chkconfig --add keepalived
[root@wallet01 ~]# chkconfig --level 35 keepalived on
[root@wallet01 ~]# chkconfig --list |grep keepalived
keepalived 0:off 1:off 2:off 3:on 4:off 5:on 6:off
[root@wallet01 ~]# vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id wallet01
}
vrrp_script check_mysql {
script "/usr/local/mysql/scripts/check_mysql.sh"
interval 2
}
vrrp_instance v01 {
state BACKUP
interface eth1
virtual_router_id 200
priority 100
advert_int 1
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.200 dev eth0
}
track_script {
check_mysql
}
}
[root@wallet01 ~]# vi /usr/local/mysql/scripts/check_mysql.sh
#!/bin/bash
MYSQL=/usr/local/mysql/bin/mysql
MYSQL_HOST=localhost
MYSQL_USER=root
MYSQL_PASSWORD=abcd.1234
$MYSQL -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWORD -e "show status;" >/dev/null 2>&1
if [ $? == 0 ]
then
echo " $host mysql login successfully "
exit 0
else
echo " $host mysql login faild"
exit 1
fi
[root@wallet01 ~]# chmod a+x /usr/local/mysql/scripts/check_mysql.sh
[root@wallet01 ~]# service keepalived start
Starting keepalived: [ OK ]
[root@wallet01 ~]# service keepalived status
keepalived (pid 3452) is running...
[root@wallet01 ~]# ip addr
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:2b:d6:17 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.201/24 brd 192.168.1.255 scope global eth0
inet 192.168.1.200/32 scope global eth0
inet6 fe80::a00:27ff:fe2b:d617/64 scope link
valid_lft forever preferred_lft forever
[root@wallet02 ~]# yum install -y libnl libnl-devel
[root@wallet02 ~]# cd /usr/local/src
[root@wallet02 src]# tar zxvf keepalived-1.2.19.tar.gz
[root@wallet02 src]# cd keepalived-1.2.19
[root@wallet02 keepalived-1.2.19]# ./configure --sysconf=/etc --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64
[root@wallet02 keepalived-1.2.19]# make && make install
[root@wallet02 keepalived-1.2.19]# ln -s /usr/local/sbin/keepalived /sbin/
[root@wallet02 ~]# chkconfig --add keepalived
[root@wallet02 ~]# chkconfig --level 35 keepalived on
[root@wallet02 ~]# chkconfig --list |grep keepalived
keepalived 0:off 1:off 2:off 3:on 4:off 5:on 6:off
[root@wallet02 ~]# vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id wallet02
}
vrrp_script check_mysql {
script "/usr/local/mysql/scripts/check_mysql.sh"
interval 2
}
vrrp_instance v01 {
state BACKUP
interface eth1
virtual_router_id 200
priority 80
advert_int 1
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.200 dev eth0
}
track_script {
check_mysql
}
}
[root@wallet02 ~]# vi /usr/local/mysql/scripts/check_mysql.sh
#!/bin/bash
MYSQL=/usr/local/mysql/bin/mysql
MYSQL_HOST=localhost
MYSQL_USER=root
MYSQL_PASSWORD=abcd.1234
$MYSQL -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASSWORD -e "show status;" >/dev/null 2>&1
if [ $? == 0 ]
then
echo " $host mysql login successfully "
exit 0
else
echo " $host mysql login faild"
exit 1
fi
[root@wallet02 ~]# chmod a+x /usr/local/mysql/scripts/check_mysql.sh
[root@wallet02 ~]# service keepalived start
Starting keepalived: [ OK ]
[root@wallet02 ~]# ip addr
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:17:92:69 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.202/24 brd 192.168.1.255 scope global eth0
inet6 fe80::a00:27ff:fe17:9269/64 scope link
valid_lft forever preferred_lft forever
[root@wallet01 ~]# service mysqld stop
Shutting down MySQL.... [ OK ]
[root@wallet01 ~]# ip addr
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:46:e9:d6 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.201/24 brd 192.168.1.255 scope global eth0
inet6 fe80::a00:27ff:fe46:e9d6/64 scope link
valid_lft forever preferred_lft forever
[root@wallet02 ~]# ip addr
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:7b:14:12 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.202/24 brd 192.168.1.255 scope global eth0
inet 192.168.1.200/32 scope global eth0
inet6 fe80::a00:27ff:fe7b:1412/64 scope link
valid_lft forever preferred_lft forever