mysql mha常见故障_MySQLMHA配置常见问题

MHA在MySQL数据库中被广泛使用,它小巧易用,功能强大,实现了基于MySQL replication架构的自手动主从故障转移,从库重定向到主库

MHA在MySQL数据库中被广泛使用,它小巧易用,功能强大,实现了基于MySQL replication架构的自手动主从故障转移,从库重定向到主库并自动同步。尽管如此,在部署配置的过程中,由于疏忽总难以避免这样或那样的错误。本文是对MHA配置中常见问题的一个汇总,供大家参考。

1、非root用户等效性环境等效性配置

a、添加所有节点(含管理节点)主机名及IP到host文件,所有节点操作

b、生成基于非root用户(如使用mysql账户)的对称密钥,使用ssh-keygen

c、复制公钥到其他各节点(含管理节点),如下,且使用了非缺省ssh 端口

ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 50011 [email protected]"

d、验证等效性(首次需要输入密码)

ssh -p 50011 vdbsrv1 date;ssh -p 50011 vdbsrv2 date;ssh -p 50011 vdbsrv3 date;ssh -p 55555 vdbsrv4 date

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用户校验复制关系

3、需要添加用于登陆到mysql服务器账户

###需要STOP SLAVE, CHANGE MASTER, RESET SLAVE等相关权限,该账户要添加到mha配置文件中,主从切换时用到

###在mysql数据库各节点执行,如下由于跨网段,所以分配了跨网段账户,否则,单条赋权即可

### Author : Leshami

### Blog :

mysql> grant all privileges on *.* to 'mha'@'172.16.16.%' identified by '***';

Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on *.* to 'mha'@'192.168.1.%' identified by '***';

Query OK, 0 rows affected (0.00 sec)

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).

9、mysqlbinlog version过低

###大多数情况下我们使用yum方式安装perl-DBD-MySQL,该方式会自动安装mysql rpm包。

###MHA在执行master_check_repl会调用/usr/bin/mysqlbinlog,对于源码安装在不同的路径的mysql高版本

###则收到如下错误提示:

Thu Apr 16 14:01:44 2015 - [info] Connecting to [email protected](vdbsrv2:22)..

mysqlbinlog version is 3.2 (included in MySQL Client 5.0 or lower). This is not recommended.

Consider upgrading MySQL Client to 5.1 or higher.

###解决方案是编译安装perl-DBD-MySQL时指定mysql安装位置,或者参考:mysqlbinlog can not parse row based events

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

本文永久更新链接地址:

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值