|
keepalived+mysql双主实现数据库冗余
主1:172.16.114.15
主2:172.16.114.16
一、安装mysql,并设置主服务器
1、将下面的代码复制到一个后缀为.sh的shell脚本文件中(脚本很容易看懂)
# vi /etc/scripts/mysql.sh
##/bin/bash
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum -y install mysql mysql-server mysql-devel
#定义一个数值mysql(需要同步的具体某个数据库,需要同步所有数据库,就将这段以及后面有关代码删掉即可)
echo "Enter the Sync database"
read mysql
cat > /etc/my.cnf show master status\G;
***************************1. row ***************************
File: mysql-bin.000002
Position: 106
Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.00 sec)
ERROR:
No query specified
mysql> slave stop
-> ;
Query OK, 0 rows affected(0.00 sec)
mysql> CHANGE MASTER TOMASTER_HOST='172.16.114.16',MASTER_PORT=3306, MASTER_USER='loyu', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=106;
# 在主2只需修改(地址指向主1) MASTER_HOST='172.16.114.15
Query OK, 0 rows affected(0.03 sec)
mysql> start slave;
Query OK, 0 rows affected(0.00 sec)
mysql> show slave status\G;
***************************1. row ***************************
Slave_IO_State: Waiting formaster to send event
Master_Host: 172.16.114.16
Master_User: loyu
Master_Port: 3306
Connect_Retry: 10
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 106
Relay_Log_File:mysqld-relay-bin.000002
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
....
(2)测试
主1:
在主1上创建数据库
mysql> create databaseliuyuqing;
Query OK, 1 row affected(0.01 sec)
mysql> use liuyuqing;
Database changed
mysql> create tableloyu(number int);
Query OK, 0 rows affected(0.02 sec)
mysql> insert into loyuvalues(1011);
Query OK, 1 row affected (0.00 sec)
在主2上查看复制情况
(可以看到数据库已经同步成功)

主2:
在第主2上创建数据库

在主1上查看数据库复制情况
(可以看到数据也是同步过来的)
二、安装keepalived
1、将如下代码复制到后缀名为.sh的shell脚本文件
# vi /etc/scripts/keepalived.sh
##!/bin/bash
yum install keepalived -y
#定义keepalived的虚拟IP
echo "VIP:"
read VIP
#定义主服务器,还是备份服务器
echo "MASTER OR BACKUP:"
read state
#定义优先级
echo "priority: (MASTER:100 BACKUP:99)"
read priority
#定义虚拟路由id,主备要一样
echo "virtual_router_id:"
read virtual_router_id
cat > /etc/keepalived/keepalived.conf |
|
|