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

1、非root用户等效性环境等效性配置
  a、添加所有节点(含管理节点)主机名及IP到host文件,所有节点操作
  b、生成基于非root用户(如使用mysql账户)的对称密钥,使用ssh-keygen
  c、复制公钥到其他各节点(含管理节点),如下,且使用了非缺省ssh 端口
    ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 50011 mysql@172.16.16.10" 
  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   : http://blog.csdn.net/leshami
  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 mysql@192.168.1.7(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

11、清理mysql.user用户表中用户名为空的记录(补充@20150421)

笔者有一次在做在线切换时发现复制账户从一个slave可以到新master,而无法从original master连接到新master,删除用户为空记录后正常

推荐:http://www.cnblogs.com/roucheng/p/mysqljichu.html

MySQL MHA配置常见问题的更多相关文章

  1. MySQL MHA配置

    MySQL环境: master:192.168.202.129:3306 slave:192.168.202.129:3307,192.168.202.129:3307,192.168.202.130 ...

  2. MYSQL + MHA +keepalive + VIP安装配置(一)--MYSQL安装配置

    一.总概: 本文介绍了MySQL高可用性的实现方案MHA,MHA由Node和Manager组成,Node运行在每一台MySQL服务器上,不管是MySQL主服务器,还是MySQL从服务器,都要安装Nod ...

  3. MySQL高可用之MHA配置

    本文简单介绍了MySQL的高可用实现方式之一的MHA MHA:Master High Availability,对主节点进行监控,可实现自动故障转移至其它从节点:通过提升某一从节点为新的主节点,基于主 ...

  4. MySQL MHA安装配置

    1.环境规划 192.168.12.131 node01 192.168.12.132 node02 192.168.12.133 node03 2.环境准备 一主两从GTID,略. 3.配置关键程序 ...

  5. MYSQL MHA

    MYSQL MHA 简介: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于 Face ...

  6. mha配置参数详解

    mha配置参数详解: 参数名字 是否必须 参数作用域 默认值 示例 hostname Yes Local Only - hostname=mysql_server1, hostname=192.168 ...

  7. 搭建MySQL MHA高可用

    本文内容参考:http://www.ttlsa.com/mysql/step-one-by-one-deploy-mysql-mha-cluster/ MySQL MHA 高可用集群 环境: Linu ...

  8. mysql mha 主从自动切换 高可用

    mha(Master High Availability)目前在MySQL多服务器(超过二台),高可用方面是一个相对成熟的解决方案. 一,什么是mha,有什么特性 1. 主服务器的自动监控和故障转移 ...

  9. CENTOS6.6 下mysql MHA架构搭建

    本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 本篇是自己搭建的一篇mysql MHA文章 前面的安装步骤基 ...

随机推荐

  1. JavaScript思维导图—Window对象

    JavaScript思维导图-来自@王子墨http://julying.com/blog/the-features-of-javascript-language-summary-maps/

  2. IOS 推送-客户端处理推送消息

    IOS 推送-客户端处理推送消息 1.推送调用顺序 APN push的消息到达后,UIApplicationDelegate有两个方法和处理消息有关: 1)application:didReceive ...

  3. java source not found

    今天的挑战是,为什么与源码明明放在本机,调试的时候却说source not found呢? 这个是因为,我重新建立了debug,然后没有选择对应的项目. 另外一个问题是,如果给底层的jar附上源码呢?

  4. 每天一个linux命令(61):wget命令

    Linux系统​中的wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器.wget支持HTTP,HTTPS和FTP ...

  5. H5常用代码:适配方案5

    此方案跟方案4是同一原理,也是通过REM实现的,能单独归类出一个方案,是因为它有一定的实用价值,当你遇到追求完美,追求到一像素的UI或者产品时,那此方案将解决你的困境. 方案5主要是用来解决一像素边框 ...

  6. Atitit.会员卡(包括银行卡)api的设计

    Atitit.会员卡(包括银行卡)api的设计 1. 银行卡的本质是一种商业机构会员卡1 2. 会员卡号结构组成1 2.1. ●前六位是:发行者标识代码 Issuer Identification N ...

  7. 《JAVA 从入门到精通》 - 正式走向JAVA项目开发的路

    以前很多时候会开玩笑,说什么,三天学会PHP,七天精通Nodejs,xx天学会xx ... 一般来说,这样子说的多半都带有一点讽刺的意味,我也基本上从不相信什么快速入门.我以前在学校的时候自觉过很多门 ...

  8. iOS-ARC项目使用非ARC文件 MRC项目使用ARC文件

    SDK4.0引入了ARC,到现在已经好几年了,开始发现有很多项目会混合使用这两个方案.比如: 1.自己的旧项目没有使用ARC,但是引入的第三方库却是使用了ARC的. 2.自己的新项目使用了ARC,但是 ...

  9. React(二)实现双向数据流

    <div id="app"></div> <script src="bower_components/react/react.min.js& ...

  10. 锋利的jQuery——19个jQuery 常用片段整理

    /** * Created by yu on 2016/11/20 0020. */// 1.禁用页面右键菜单$(function () { $(document).on('contextmenu', ...