keepalived+mysql主+主
实验目的:实现数据备份,防止数据丢失,或出错,解决服务器的单点故障
两个mysql服务器+keepalived
192.168.100.111 centos7
192.168.100.222 centos6
1)安装MYSLQ源码安装 、yum安装均可、yum安装路径会在/var/lib/mysql/
192.168.100.111
yum -y install ntp //主MYSQL安装时间同步器 防止时间不一样造成数据丢失
vim /etc/ntpd.conf
添加
server 127.127.1.0
fudge 127.127.1.0 startum 8
启动service ntpd start
配置/etc/my.cnf
vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin
log-slave-updates=true //开启从日志更新
server-id = 1 主的ID,可以随便设置,但是不要与任何服务器发生冲突 、所有的默认是1
service mysqld restart
登陆mysql 、 mysql -uroot -p123123
创建myslave账号,并授权
grant replication slave on *.* to 'myslave'@'192.168.100.%' identified by '123123'; //授权允许操作所有给myslave用户,所有100网段的IP 密码为123123
flush privileges; //生成一下
show master status; 查看当前用的二进制文件 配置从要用File Position
service mysqld restart
主配置完成
从:192.168.100.222
MYSQL安装时间同步器,yum -y install ntpdate
ntpdate 192.168.100.111 //要同步谁 对方的IP
修改/etc/my.cnf
[mysqld]
relay-log=relay-log-bin //传递日志,前缀为relay-log-bin
relay-log-index=slave-relay-bin.index //传递索引文件
log-bin=mysql-bin //开启二进制日志
server-id = 2 //同理 随便设置 不可以一样
service mysqld restart
登陆MYSQL, mysql -uroot -p123123
change master to master_host='192.168.100.111',master_user='myslave',master_password='123456',master_log_file='主服务器的File、mysql-bin.000007',master_log_pos='Position、275';
master_host 为主服务器的IP master_user为主服务器的myslave用户
start slave; 开启从服务
show slave status\G; //查看当前状态
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
两项都是yes,代表从服务成功
可能出现的问题IO=no 一般都是IO的问题
第一授权可能出问题 、第二/etc/my.cnf配置文件有问题
以上是主从服务器。 以下是主主,一台既是主也是从 另一个既主也是从。按照上面的反过来在来一遍即可
现在配置当前是从在添加主
192.168.100.222
vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin
log-slave-updates=true //开启从日志更新
server-id //不用更改
重启服务 service mysqld restart
登陆mysql 、 mysql -uroot -p123123
创建myslave账号,并授权
grant replication slave on *.* to 'myslave'@'192.168.100.%' identified by '123123'; //授权允许操作所有给myslave用户,所有100网段的IP 密码为123123
flush privileges; //生成一下
show master status; 查看当前用的二进制文件 配置从要用File Position
service mysqld restart
从+主 配置完成
配置主+从 192.168.100.111
修改/etc/my.cnf
[mysqld]
relay-log=relay-log-bin //传递日志,前缀为relay-log-bin
relay-log-index=slave-relay-bin.index //传递索引文件
log-bin=mysql-bin //开启二进制日志
server-id //不变
service mysqld restart
登陆MYSQL, mysql -uroot -p123123
change master to master_host='192.168.100.222',master_user='myslave',master_password='123456',master_log_file='主服务器的File、mysql-bin.000006',master_log_pos='Position、321';
master_host 为(从上的主的服务器)的IP master_user为(从上的主)服务器的myslave用户
start slave; 开启从服务
show slave status\G; //查看当前状态
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
完成主主
配置keepalived 实现高可用
在主mysql服务器配置
yum -y install keepalived
cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.$(date +%F)
vim /etc/keepalived.confvrrp_instance VI_1 { #实例1
state MASTER #状态为主
interface ens33 #绑定网卡
virtual_router_id 11 # id 号,主从一致
priority 100 #优先级为100
advert_int 1
#nopreempt #非抢占模式
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #虚拟ip地址
192.168.100.123
}
}
virtual_server 192.168.100.111 3306 {
delay_loop 2 #间隔2秒检查真实服务器状态
lb_algo rr #负载调度算法,rr 轮询
lb_kind DR #设置LVS实现负载均衡的机制,可以NAT.TUN.DR
protocol TCP
real_server 192.168.100.111 3306 { #真实服务器 ,也就是主mysql服务器
weight 3
TCP_CHECK {
connect_timeout 10 #timeout //10秒无响应超时
nb_get_retry 3 #conect times to try to connect //重复次数
delay_before_retry 3 #interval of retry //两次重试的间隔为3秒
connect_port 3306 # check mysql port //测试连接的端口
}
}
}
启动服务,service keepalived start
在从服务器192.168.100.222
在从mysql服务器配置
yum -y install keepalived
cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.$(date +%F)
vim /etc/keepalived.confvrrp_instance VI_1 { #实例1
state SLAVE #状态为从
interface ens33 #绑定网卡
virtual_router_id 11 # id 号,主从一致
priority 90 #优先级为90
advert_int 1
#nopreempt #非抢占模式
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #虚拟ip地址
192.168.100.123
}
}
virtual_server 192.168.100.222 3306 {
delay_loop 2 #间隔2秒检查真实服务器状态
lb_algo rr #负载调度算法,rr 轮询
lb_kind DR #设置LVS实现负载均衡的机制,可以NAT.TUN.DR
protocol TCP
real_server 192.168.100.222 3306 { #真实服务器 ,也就是主mysql服务器
weight 3
TCP_CHECK {
connect_timeout 10 #timeout //10秒无响应超时
nb_get_retry 3 #conect times to try to connect //重复次数
delay_before_retry 3 #interval of retry //两次重试的间隔为3秒
connect_port 3306 # check mysql port //测试连接的端口
}
}
}
启动服务,service keepalived start

浙公网安备 33010602011771号