准备
当前使用服务器:
192.168.131.130(管理节点)
192.168.131.131(数据节点1,sql节点1)
192.168.131.132(数据节点2,sql节点2)
vip(虚拟ip):192.168.131.150
分别在两台主机192.168.131.131与192.168.131.132服务器中添加vip,192.168.131.150(注:主机服务器ip,虚拟ip均应在同一网段) — ubuntu下添加虚拟ip
搭建mysql集群
搭建keepalived
// 若未安装先进行安装
sudo apt-get install keepalived
// 新建并编辑keepalived.conf文件
vi /etc/keepalived/keepalived.conf
主服务器(192.168.131.132)keepalived.conf配置:
global_defs {
notification_email {
//可以添加邮件提醒
}
notification_email_from root@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER //主服务器
interface ens33
virtual_router_id 51
mcast_src_ip 192.168.131.132
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.131.150
}
}
virtual_server 192.168.131.150 3306 {
delay_loop 6
lb_algo wrr
lb_kind DR
persistence_timeout 60
protocol TCP
real_server 192.168.131.131 3306 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
real_server 192.168.131.132 3306 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}
备服务器(192.168.131.131)的keepalived.conf配置:
global_defs {
notification_email {
//可以添加邮件提醒
}
notification_email_from root@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP //从服务器
interface ens33
virtual_router_id 51
mcast_src_ip 192.168.131.131
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.131.150
}
}
virtual_server 192.168.131.150 3306 {
delay_loop 6
lb_algo wrr
lb_kind DR
persistence_timeout 60
protocol TCP
real_server 192.168.131.131 3306 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
real_server 192.168.131.132 3306 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}
// 运行keepalived(运行keepalived先确保mysql集群是开启状态)
sudo /etc/init.d/keepalived start(start开启,stop停止,reload重启)
// 可以查看keepalived的运行日志
sudo tail /var/log/syslog
安装 ipvsadm
sudo apt-get install ipvsadm
// IPVSADM验证
sudo ipvsadm -Ln
若以上步骤没有出错,应出现下方输出:
测试
1、在192.168.131.132通过vip登录mysql
// 通过虚拟ip可以随机选择131或132主机进行数据库连接(负载均衡)
mysql -h 192.168.131.150 -u root -p
可能出现如下情况
或者
解决方法 -> 解决mysql远程连接Host ‘*’ is not allowed to connect to this MySQL server
2、成功登录后(默认mysql集群已经成功)
// 退出mysql
quit
// 关闭192.168.131.132(主)的mysql服务
pkill ndbd
pkill mysql
// 在客户机尝试进入mysql(主从备份,客户机需要有mysql服务)
mysql -h 192.168.131.150 -u root -p
在客户机中对数据库进行修改后,正常情况下可以看到在192.168.131.132查看数据已经同步。
则代表实现了keepalived的高可用。