1、服务器规划
Master:192.168.0.152
Slave: 192.168.0.153 192.168.0.154
监控服务器: 192.168.0.154
注意:真实生产环境最好有一台单独的服务器监控数据库Replication,这里我就直接用一台Salve服务器当做监控服务器了。
下载 MySQL Utilities和MySQL Connectors并安装
在192.168.0.154(监控服务器)服务器上执行以下命令来安装下载的MySQL Utilities和MySQL Connectors
yum install mysql-connector-python-2.1.4-1.el6.x86_64.rpm mysql-utilities-1.6.4-1.el6.noarch.rpm
Master:192.168.0.152
Slave: 192.168.0.153 192.168.0.154
监控服务器: 192.168.0.154
配置Replication请参见博文《MySQL之——MS主从复制(读写分离)实现》 、《MySQL之——MSS主从复制(读写分离)实现》
、《MySQL之——BinLog Replication升级为GTIDs Replication四步骤》。
在192.168.0.152、192.168.0.153和192.168.0.154服务器上分别执行:
mysql>grant create,insert ,drop, select, super, replication slave, reload on *.* to 'replm'@'192.168.0.154' identified by password 'replm' with grant option;
在192.168.0.152、192.168.0.153和192.168.0.154分别执行
mysql>show grants for replm@192.168.0.154;
可验证是否授权成功。
注意:如果是单独的一台服务器监控Replication, 只在Replication涉及到的Master和Slave服务器上执行授权操作,授权目标IP为监控服务器IP
以下是配置Replication监控和故障切换时my.cnf文件中的核心配置
[mysqld] log-bin=/data/mysql3306log/mysql-bin binlog-format=mixed server-id = 001 sync_binlog=1 gtid-mode=on enforce-gtid-consistency log-slave-updates report-host=192.168.0.154 master-info-repository=TABLE relay-log-info-repository=TABLE
修改配置后,重启mysql服务器,然后mysql服务器会将存储在二进制日志中的两个文件master.info和relay-log.info保存到数据库中,此时执行use mysql;show tables; 会发现mysql数据库中新创建了slave_master_info和slave_relay_log_info两张表。
在192.168.0.154(监控服务器)上执行
#mysqlfailover --master=replm:replm@192.168.0.152 --discover-slaves-login=replm:replm
至此,我们配置好了Replication监控及自动故障切换功能了。
注意:当Master服务器挂掉的时候,mysqlfailover会自动在slave服务器中选择一个作为Master,其他slave均对应到新的Master服务器。
注意:当Master挂掉后,mysqlfailover自动在其他slave中选择一个服务器当做Master,当我们手动重启原来的Master服务器时,mysqlfailover不能自动发现原来挂掉的mysql服务器又重启了,这个时候就要我们自己手动将原来挂掉的mysql服务器重启并作为一个Slave服务器加入到Replication中。
以上是MySQL之-Replication监控及自动故障切换的详细分析的详细内容。更多信息请关注PHP中文网其他相关文章!