keepalived安装及mysql高可用配置

  • keepalived安装说明
    keepalived依赖gcc和OpenSSL,如果这两个没有安装,要提前安装。在安装OpenSSL中,openssl-devel也是要同步安装的。openssl-devel包含一些头文件和库,在keepalived安装时会用到。

keepalived安装

1.下载源码包
官网地址为http://www.keepalived.org/download.html。
自行下载源码包并上传服务器解压,本次使用版本keepalived-2.1.0.tar.gz。源码解压目录/home/qxmz/package/keepalived-2.1.0。

2.编译

./configure --prefix=/usr/local/keepalived
make && make install

3.初始化及启动

将keepalived主程序加入到环境变量
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
keepalived启动脚本(源码目录下),放到/etc/init.d/目录下就可以使用service命令便捷调用
cp /home/qxmz/package/keepalived-2.1.0/keepalived/etc/init.d/keepalived /etc/init.d/
keepalived启动脚本变量引用文件
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
创建默认配置文件目录及文件
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
加为系统服务:chkconfig --add keepalived
开机启动:chkconfig keepalived on
启动、关闭、重启service keepalived start|stop|restart

4.修改配置
上面直接启动keepalive会报错,因为配置文件中的网卡名没有改为实际的名称。master和slave配置文件内容提供如下:
master
keepalived安装及mysql高可用配置
slave
keepalived安装及mysql高可用配置
其中chk_nginx.sh是用来检测程序是否存活,如mysql或Nginx。该脚本功能是一旦mysql或Nginx程序检测不存在,就会停止本机上的keepalive。这时虚拟ip就会飘逸到另外一个节点上,实现高可用。

mysql高可用—主主+keepalived模式

keepalived主从安装及配置参考上面过程,下面重点介绍mysql主主模式配置
1.下文只介绍配置过程,mysql实际的安装略过。
2.master配置(110.140)

log-bin=mysql-bin
server-id=1
binlog-ignore-db = mysql,information_schema,performance_schema
binlog-do-db = qxmz
auto-increment-increment = 2
auto-increment-offset = 1
slave-skip-errors = all

3.slave配置(110.24)

server-id=2
log-bin=mysql-bin
binlog-ignore-db =mysql,information_schema,performance_schema
binlog-do-db = qxmz
auto-increment-increment = 2
auto-increment-offset = 2
slave-skip-errors = all

4.master操作(110.140)

创建用户:CREATE USER ‘repl’@‘192.168.110.24’ IDENTIFIED BY ‘[email protected]@qxmz123’;
赋予权限:GRANT REPLICATION SLAVE ON . to ‘rep1’@‘192.168.110.24’ identified by ‘[email protected]@qxmz123’;
刷新:flush privileges;
查看主信息:SHOW MASTER STATUS;
mysql-bin.000010 | 1333
在从库上执行(110.24)
修改指向的主节点:CHANGE MASTER TO MASTER_HOST=‘192.168.110.140’,MASTER_USER=‘rep1’,MASTER_PASSWORD=‘[email protected]@qxmz123’,MASTER_LOG_FILE=‘mysql-bin.000010’,MASTER_LOG_POS=1333;
开启线程:start slave;
show slave status\G;

5.slave操作(110.24)

CREATE USER ‘replb’@‘192.168.110.140’ IDENTIFIED BY ‘[email protected]@qxmz123’;
GRANT REPLICATION SLAVE ON . to ‘replb’@‘192.168.110.140’ identified by ‘[email protected]@qxmz123’;
flush privileges;
SHOW MASTER STATUS;
mysql-bin.000002 | 879
从库执行 (110.140)
CHANGE MASTER TO MASTER_HOST=‘192.168.110.24’,MASTER_USER=‘replb’,MASTER_PASSWORD=‘[email protected]@qxmz123’,MASTER_LOG_FILE=‘mysql-bin.000002’,MASTER_LOG_POS=879;
start slave;
show slave status\G;

6.测试:略