数据库架构:一主二从
master:192.168.0.11
slave1:192.168.0.201
slave2:192.168.0.202
MHA软件:下载地址
mha4mysql-manager-0.57.tar.gz
mha4mysql-node-0.57.tar.gz
Manager工具包主要包括以下几个工具:
masterha_check_ssh 检查MHA的SSH配置状况
masterha_check_repl 检查MySQL复制状况
masterha_manger 启动MHA
masterha_check_status 检测当前MHA运行状态
masterha_master_monitor 检测master是否宕机
masterha_master_switch 控制故障转移(自动或者手动)
masterha_conf_host 添加或删除配置的server信息
Node工具包(这些工具通常由MHA Manager的脚本触发,无需人为操作)主要包括以下几个工具:
save_binary_logs 保存和复制master的二进制日志
apply_diff_relay_logs 识别差异的中继日志事件并将其差异的事件应用于其他的slave
filter_mysqlbinlog 去除不必要的ROLLBACK事件(MHA已不再使用这个工具)
purge_relay_logs 清除中继日志(不会阻塞SQL线程)
一、配置msyql5.7
1.在配置文件添加,三台服务器一样,只需修改server-id和log-bin。
注意:binlog-do-db 和 replicate-ignore-db 设置必须相同。 MHA 在启动时候会检测过滤规则,如果过滤规则不同,MHA 不启动监控和故障转移,这里没有设置。
server-id=266
log-bin=mysql-bin
gtid_mode = on
#开启gtid,必须主从全开
enforce_gtid_consistency = 1
log_slave_updates = 1
#开启半同步复制 否则自动切换主从的时候会报主键错误
plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
loose_rpl_semi_sync_master_enabled = 1
loose_rpl_semi_sync_slave_enabled = 1
loose_rpl_semi_sync_master_timeout = 5000
2.启动服务器,配置主从 (这里简写,百度很多)
mysql5.7会默认加载validate_password 模块,是来控制密码长度和规则的,可以在配置文件里面关闭该模块 加上validate_password = off ,或者在mysql命令行执行set global validate_password_policy=0;来临时取消密码规则。
在三台服务器上配置复制用户和监控用户,三台服务器都要添加。
添加复制用户
grant replication slave on *.* to 'repl'@'192.168.0.%' identified by '123456';
这里注意一定要用repl用户,否则后边会报找不到复制用户
加监控用户
grant all privileges on *.* to 'root'@'192.168.0.%' identified by '123456';
在master上执行
show master status;
记住File 和Position列的数字
在salve1 和salve2上执行
change master to master_host='192.168.0.11',master_user='repl',master_password='123456',master_log_file='mysql-master.000001',master_log_pos=194;
#设置从服务器只读,不要在配置文件里写,重点!!!不然不小心从服务器写入了数据,有你哭的
set global read_only=