mysql> grant replication slave on *.* to 'repl'@'192.168.244.%' identified by 'repl'; Query OK, 0 rows affected (0.09 sec)
3. 查看备份文件all.sql中的CHANGE MASTER语句
# head -n 30 all.sql
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=120;
4. 将备份文件复制到Candicate master和Slave上
# scp all.sql 192.168.244.20:/root/
# scp all.sql 192.168.244.30:/root/
5. 在Candicate master上搭建从库
# mysql < all.sql
设置复制信息
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.244.10',
-> MASTER_USER='repl',
-> MASTER_PASSWORD='repl',
-> MASTER_LOG_FILE='mysql-bin.000002',
-> MASTER_LOG_POS=120;
Query OK,0 rows affected, 2 warnings (0.19 sec)
mysql> start slave;
Query OK,0 rows affected (0.02 sec)
mysql> show slave status\G
6. 在Slave上搭建从库
7. slave服务器设置为read only
mysql> set global read_only=1; Query OK, 0 rows affected (0.04 sec)
8. 在Master中创建监控用户
mysql> grant all privileges on *.* to 'monitor'@'%' identified by 'monitor123'; Query OK, 0 rows affected (0.07 sec)
五、 配置MHA
1. 在Monitor host(192.168.244.40)上创建MHA工作目录,并且创建相关配置文件
# mkdir -p /etc/masterha
# vim /etc/masterha/app1.cnf
[server default] manager_log=/masterha/app1/manager.log //设置manager的日志 manager_workdir=/masterha/app1 //设置manager的工作目录 master_binlog_dir=/var/lib/mysql //设置master默认保存binlog的位置,以便MHA可以找到master的日志 master_ip_failover_script= /usr/local/bin/master_ip_failover //设置自动failover时候的切换脚本 master_ip_online_change_script= /usr/local/bin/master_ip_online_change //设置手动切换时候的切换脚本 user=monitor // 设置监控用户 password=monitor123 //设置监控用户的密码 ping_interval=1 //设置监控主库,发送ping包的时间间隔,默认是3秒,尝试三次没有回应的时候进行自动failover remote_workdir=/tmp //设置远端mysql在发生切换时binlog的保存位置 repl_user=repl //设置复制环境中的复制用户名 repl_password=repl //设置复制用户的密码 report_script=/usr/local/bin/send_report //设置发生切换后发送的报警的脚本 secondary_check_script= /usr/local/bin/masterha_secondary_check -s 192.168.244.20 -s 192.168.244.30 --user=root --master_host=192.168.244.10 --master_ip=192.168.244.10 --master_port=3306 //一旦MHA到master的监控之间出现问题,MHA Manager将会判断其它两个slave是否能建立到master_ip 3306端口的连接 shutdown_script="" //设置故障发生后关闭故障主机脚本(该脚本的主要作用是关闭主机防止发生脑裂) ssh_user=root //设置ssh的登录用户名 [server1] hostname=192.168.244.10 port=3306 [server2] hostname=192.168.244.20 port=3306 candidate_master=1 //设置为候选master,如果设置该参数以后,发生主从切换以后将会将此从库提升为主库,即使这个主库不是集群中最新的slave check_repl_delay=0 //默���情况下如果一个slave落后master 100M的relay logs的话,MHA将不会选择该slave作为一个新的master,因为对于这个slave的恢复需要花费很长时间,通过设置check_repl_delay=0,MHA触发切换在选择一个新的master的时候将会忽略复制延时,这个参数对于设置了candidate_master=1的主机非常有用,因为它保证了这个候选主在切换过程中一定是最新的master [server3] hostname=192.168.244.30 port=3306
注意:
1> 在编辑该文件时,后面的注释切记要去掉,MHA并不会将后面的内容识别为注释。