MHA在MySQL数据库中被广泛使用,它小巧易用,功能强大,实现了基于MySQL replication架构的自手动主从故障转移,从库重定向到主库并自动同步。尽管如此,在部署配置的过程中,由于疏忽总难以避免这样或那样的错误。本文是对MHA配置中常见问题的一个汇总,供大家参考。
?
2、MHA管理节点目录权限问题
? ###如果在管理节点使用了非root用户进行mha管理,则需要相关权限,否则报错
? ###如下我们使用mysql用户管理mha,则在root账户先创建相关目录,在赋权给mysql
? # mkdir -p /var/log/masterha/app1
? # chown -R mysql:mysql /var/log/masterha
? # su - mysql
? $ masterha_check_repl --conf=/etc/app1.cnf? ###使用mysql用户校验复制关系
?
?
4、需要添加用于建立复制关系的账户
? ###在mysql数据库各节点执行,如下由于跨网段,所以分配了跨网段账户,否则,单条赋权即可
? mysql> grant replication slave on *.* to 'repl'@'172.16.16.%' identified by '***';
? Query OK, 0 rows affected (0.00 sec)
?
? mysql> grant replication slave on *.* to 'repl'@'192.168.1.%' identified by '***';
? Query OK, 0 rows affected (0.00 sec)
?
5、从库的各客户端应开启binlog,即log_bin=on
? ###未开启则收到如下提示:
? Mon Apr 13 20:02:15 2015 - [warning]? log-bin is not set on slave SZ-DB-SLAVE01(192.168.81.3:3306).
? This host cannot be a master.
?
6、各主从库应该使用相同的复制过滤规则
? ###否则收到如下的错误提示:
? Mon Apr 13 20:02:15 2015 - [error][/usr/lib/perl5/site_perl/5.8.8/MHA/ServerManager.pm, ln546] Replication
? ? ? filtering check failed on dbsrv3(192.168.1.3:3306)! All slaves must have same replication filtering rules.
? ? ? Check SHOW SLAVE STATUS output and set my.cnf correctly.
? Mon Apr 13 20:02:15 2015 - [warning] Bad Binlog/Replication filtering rules:
?
7、各从库应设置relay_log_purge=0
? ###否则收到以下告警信息 ##mysql -e 'set global relay_log_purge=0' 动态修改该参数,因为随时slave会提升为master。补充@150420
? Mon Apr 13 20:02:15 2015 - [warning]? relay_log_purge=0 is not set on slave vdbsrv2(172.16.16.12:3306).
?
8、各从库设置read_only=1
? ###否则收到以下告警信息 ## mysql -e 'set global read_only=1' 动态修改该参数,因为随时slave会提升为master。补充@150420
? Mon Apr 13 20:19:54 2015 - [info]? read_only=1 is not set on slave vdbsrv3(172.16.16.13:3306).
?
10、缺省路径下mysql客户端如果不存在则出现以下提示
? ###通过建立软链或者yum install perl-DBD-MySQL会自动安装mysql
? Testing mysql connection and privileges..sh: mysql: command not found
? mysql command failed with rc 127:0!
? at /usr/bin/apply_diff_relay_logs line 375