大家知道实现MySQL_Ha的方案有很多,常见的heartbeat、keepalived,这里说的就是keepalived,优点就是简单,快速,下面就是详情了;
1、系统:CentOS6.0;lamp平台(lamp平台是我一个习惯,非必须)
vip:192.168.135.200
master:192.168.135.134
slave:192.168.135.135
实现134实时复制135,135实时复制134,也就是说修改每一个数据库都会数据统一,master机器配置好点,我这边配置preempt(抢占),也就说134挂了以后,135提供服务,134恢复以后,继续134为master提供服务;
master(192.168.135.134)操作:
yum install http mysql* php* ipvsadm keepalived -y
1>、修改MySQL配置文件
两台MySQL均要开启binlog日志功能,在MySQL配置文件[MySQLd]段中加上log-bin=mysql-bin选项
两台MySQL的server-ID不能一样,默认情况下两台MySQL的serverID都是1,、其中一台修改为2;
2>、初始化下服务
service httpd restart
service mysqld restart
关闭服务:service iptables stop
修改selinux
3>、首先先将两台机器的同步做好;
master:同步slave上的数据库
授权用户;grant replication slave on *.* to 'leo'@'%' identified by 'leo123';
查询主数据库状态;并记下FILE及Position的值,这个在后面配置从服务器的时候要用到。
在另一台(slave)机器操作将此台机器设置为主服务器
change master to master_host='192.168.135.134',master_user='leo',master_password='leo123',master_log_file='mysql-bin.000001',master_log_pos=106;
授权用户;
grant replication slave on *.* to 'leo'@'%' identified by 'leo123';
同样查询主数据库状态
在另一台(master)机器操作将此台机器设置为主服务器
change master to master_host='192.168.135.135',master_user='leo',master_password='leo123',master_log_file='mysql-bin.000001',master_log_pos=247;
然后两台机器同时启动slave
start slave
查看slave状态
检查主从同步,如果您看到Slave_IO_Running和Slave_SQL_Running均为Yes,则主从复制连接正常。
show slave status\G
重点查看圈住的地方
在slave机器上同样查看是否正常
test:现在在两台服务器上其中一台,修改下数据,看看另一台的状况是否也修改,比如:
在另一台发现已经同步过去了;