mysql使用keepalive实现HA(一)—主从master/slave部分

使用一主一从master/slave;

来源:http://ju.outofmemory.cn/entry/26073,http://blog.csdn.net/xuejiazhi/article/details/8941156

1.KeepAlived+Mysql

Mysql VIP :192.168.1.11

Master1:192.168.1.82

Master:192.168.1.83

OS 环境:Cent OS 6.5

Mysql版本:Mysql-community 5.7

2.安装mysql,略,如有需要参考:http://wp.tanguu.com/2016/01/06/remiepel-%E7%9A%84yum-%E6%BA%90%E5%AE%89%E8%A3%85/

3.修改my.cnf配置

在两台要进行备份的mysql服务器上的my.cnf文件进行配置如下(将下面的配置分别加入相关服务器的my.cnf):注意按原作者是这样设置log-bin=/var/log/mysql/mysql-bin.log(创建该文件并chown mysql.mysql),结果本人这样做的时候mysql启动不了的情况,最后修改成如下配置:

Master1(192.168.1.82)

Master(192.168.1.83)

#主标服务标识号,必需唯一

server-id = 1

#因为MYSQL是基于二进制的日志来做同步的,每个日志文件大小为 1G

log-bin=mysql-bin

#要同步的库名

binlog-do-db = test

#不记录日志的库,即不需要同步的库

binlog-ignore-db=mysql

#用从属服务器上的日志功能

log-slave-updates

#经过1日志写操作就把日志文件写入硬盘一次(对日志信息进行一次同步)。n=1是最安全的做法,但效率最低。默认设置是n=0。

sync_binlog=1

# auto_increment,控制自增列AUTO_INCREMENT的行为,用于MASTER-MASTER之间的复制,防止出现重复值,auto_increment_increment=n有多少台服务器,n 就设置为多少,auto_increment_offset=1设置步长,这里设置为1,这样Master的auto_increment字段产生的数值是:1, 3, 5, 7, …等奇数ID

auto_increment_offset=1

auto_increment_increment=2

#进行镜像处理的数据库

replicate-do-db = test

#不进行镜像处理的数据库

replicate-ignore-db= mysql

#主标服务标识号,必需唯一

server-id = 2

#因为MYSQL是基于二进制的日志来做同步的,每个日志文件大小为 1G

log-bin=mysql-bin

#要同步的库名

binlog-do-db = test

#不记录日志的库,即不需要同步的库

binlog-ignore-db=mysql

#用从属服务器上的日志功能

log-slave-updates

#经过1日志写操作就把日志文件写入硬盘一次(对日志信息进行一次同#步)。n=1是最安全的做法,但效率最低。默认设置是n=0。

sync_binlog=1

# auto_increment,控制自增列AUTO_INCREMENT的行为用于MASTER-MASTER之间的复制,防止出现重复值,auto_increment_increment=n有多少台服务器,n 就设置为多少,auto_increment_offset=2设置步长,这里设置为2,这样Master的auto_increment字段产生的数值是:2, 4, 6, 8, …等奇数ID

auto_increment_offset=2

auto_increment_increment=2

#进行镜像处理的数据库

replicate-do-db = test

#不进行镜像处理的数据库

replicate-ignore-db= mysql

4.查看配置情况:

mysql> show master status;#主

mysql> show master status;#从

5.创建同步帐户

GRANT REPLICATION SLAVE ON *.* TO ‘slave’@’%’ IDENTIFIED BY ‘Tangzhq_88’;#主

mysql> FLUSH PRIVILEGES;   //刷新相关权限表

GRANT REPLICATION SLAVE ON *.* TO ‘slave’@’%’ IDENTIFIED BY ‘Tangzhq_88’;#从

mysql> FLUSH PRIVILEGES;   //刷新相关权限表

注:会遇到密码强度的问题,修改密码为高强度:大小写,数字特殊字符;还会遇到让修改root密码的,修改即是1

6.同步设置

Master1(192.168.1.82)上操作如下:

mysql> stop slave;  //停止slave

mysql> change master to master_host=’192.168.1.83′, master_user=’slave’, master_password=’Tangzhq$0810′, master_log_file=’mysql-bin.000001′, master_log_pos=849; //修改当前的Master的值,因为是互为备份,所以Master1(192.168.1.82)的master为Master2(192.168.1.83),Master2设置复制的用户名为slave,密码是Tangzhq$0810,上面通过 show master status我们得知,log_file是mysql-bin.000001,postion是849。

mysql>start slave;    //开始salve,开始同步

mysql>show slave status;   //检测slave状态,如果Slave_IO_Running: Yes    Slave_SQL_Running: Yes    Seconds_Behind_Master: 0就OK了

 

Master2(192.168.1.83)上面操作如下:

mysql> stop slave;  //停止slave

mysql>change master to master_host=’192.168.1.82′, master_user=’slave’, master_password=’Tangzhq$0810′, master_log_file=’mysql-bin.000004′, master_log_pos=1098; //修改当前的Master的值,因为是互为备份,所以Master2(192.168.1.83)的master为Master2(192.168.1.82),Master1设置复制的用户名为slave,密码是Tangzhq_88,上面通过 show master status我们得知,log_file是mysql-bin.000004,postion是1098。

mysql>start slave;    //开始salve,开始同步

mysql>show slave status;  //检测slave状态,如果Slave_IO_Running: Yes    Slave_SQL_Running: Yes    Seconds_Behind_Master: 0就OK了

7.测试

在192.168.1.82上创建test库:create database test;#发现192.168.1.83自动创建了此库;

在192.168.1.82上test库上创建表:create table test(id int);#发现192.168.1.83自动创建了此表;

请看下篇–>mysql使用keepalive实现HA(二)—keepalive部分

发布者

zebulun

我还是我,不一样的花火!