视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MySQLMHA配置常见问题
2020-11-09 14:27:57 责编:小采
文档


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

本文永久更新链接地址:

下载本文
显示全文
专题