您的位置:首页 > 运维架构 > 网站架构

搭建mysql集群+keepalived高可用

2017-10-19 16:23 585 查看

准备

当前使用服务器:

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集群

ubuntu下mysql_cluster基础搭建

搭建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 3
4000
306 {
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的高可用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: