ITPUB论坛-中国最专业的IT技术社区

 找回密码
 注册
查看: 408|回复: 12

安装MHA执行检查命令时报错

[复制链接]
论坛徽章:
32
优秀写手
日期:2014-07-23 06:00:13秀才
日期:2016-08-05 10:34:04秀才
日期:2016-08-05 10:34:04秀才
日期:2016-08-05 10:28:31秀才
日期:2016-08-05 10:33:40技术图书徽章
日期:2016-08-05 10:29:11秀才
日期:2016-08-05 10:28:57秀才
日期:2016-08-05 10:28:57秀才
日期:2016-08-05 10:28:57秀才
日期:2016-09-27 15:16:21
发表于 2017-11-13 11:39 | 显示全部楼层 |阅读模式
本帖最后由 flzhang 于 2017-11-13 14:04 编辑

MHA 包都装了,masterha_check_ssh也能执行了,但到masterha_check_repl就总报下面的错误
[root@iZ2zehy7gff0kpg1swp1czZ bin]# masterha_check_repl --conf=/u01/mha/etc/app.cnf
Mon Nov 13 11:36:50 2017 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Mon Nov 13 11:36:50 2017 - [info] Reading application default configuration from /u01/mha/etc/app.cnf..
Mon Nov 13 11:36:50 2017 - [info] Reading server configuration from /u01/mha/etc/app.cnf..
Mon Nov 13 11:36:50 2017 - [info] MHA::MasterMonitor version 0.57.
Mon Nov 13 11:36:51 2017 - [error][/root/perl5/lib/perl5/MHA/ServerManager.pm, ln188] There is no alive server. We can't do failover
Mon Nov 13 11:36:51 2017 - [error][/root/perl5/lib/perl5/MHA/MasterMonitor.pm, ln427] Error happened on checking configurations.  at /root/perl5/lib/perl5/MHA/MasterMonitor.pm line 329.
Mon Nov 13 11:36:51 2017 - [error][/root/perl5/lib/perl5/MHA/MasterMonitor.pm, ln525] Error happened on monitoring servers.
Mon Nov 13 11:36:51 2017 - [info] Got exit code 1 (Not master dead).
MySQL Replication Health is NOT OK!

app配置文件是这样的
[server default]
user=root
password=123456
port=33091
ssh_user = root
ssh_port=443
repl_user = rpl_user
repl_password = rpl_pass
ping_interval = 1
ping_type = CONNECT
manager_workdir=/u01/mha/etc/app
manager_log=/u01/mha/log/manager.log
remote_workdir=/u01/mha/etc/app
#master_binlog_dir="/u01/mysql_5.7/s1"
#master_ip_failover_script="/u01/mha/etc/master_ip_failover"
#master_ip_online_change_script="/u01/mha/etc/master_ip_failover"
shutdown_script=""
report_script=""

#check_repl_delay=0
[server1]
hostname=zlhost
#ip=127.0.0.1
port=33091
ssh_port=443
master_binlog_dir="/apps/dbdat/mysql5_data33091/log"
candidate_master=1
ignore_fail=1
[server2]
hostname=zlhost
#ip=127.0.0.1
port=33092
ssh_port=443
master_binlog_dir="/u01/mysql_5.7/s2"
candidate_master=1
ignore_fail=1
[server3]
hostname=zlhost
#ip=127.0.0.1
port=33093
ssh_port=443
master_binlog_dir="/u01/mysql_5.7/s3"
candidate_master=1
ignore_fail=1

但从报错中感觉怎么都找不到alive服务器,我ssh master ,登陆master上的mysql都是可以的,但就是报上面的错误还请大家帮助





论坛徽章:
32
优秀写手
日期:2014-07-23 06:00:13秀才
日期:2016-08-05 10:34:04秀才
日期:2016-08-05 10:34:04秀才
日期:2016-08-05 10:28:31秀才
日期:2016-08-05 10:33:40技术图书徽章
日期:2016-08-05 10:29:11秀才
日期:2016-08-05 10:28:57秀才
日期:2016-08-05 10:28:57秀才
日期:2016-08-05 10:28:57秀才
日期:2016-09-27 15:16:21
 楼主| 发表于 2017-11-14 08:43 | 显示全部楼层
这个环境是 manager ,node和 mysql master,slave都在一台机器 用master_check_ssh都能通过,到master_check_repl就不正常了,现在主从是mysql5.7 gtid模式, 也都能主从 show slave status,时,io 和 slave thread都是yes,不知道为何还出现上述问题,请大家指点啦

使用道具 举报

回复
论坛徽章:
3
懒羊羊
日期:2015-03-04 14:52:112015年新春福章
日期:2015-03-06 11:58:18蒙奇·D·路飞
日期:2017-09-21 11:23:37
发表于 2017-11-14 16:20 | 显示全部楼层
本帖最后由 lujinke 于 2017-11-14 16:21 编辑

1,检查你提供的用于连接MySQL的用户名和账号是否OK的
2,检查你的防火墙是否对于数据库端口是否是开放的
在机器上试试:
mysql -u${USER} -p${PASSWORD} -P{PORT} -h{HOST}
看看是否连上

使用道具 举报

回复
论坛徽章:
32
优秀写手
日期:2014-07-23 06:00:13秀才
日期:2016-08-05 10:34:04秀才
日期:2016-08-05 10:34:04秀才
日期:2016-08-05 10:28:31秀才
日期:2016-08-05 10:33:40技术图书徽章
日期:2016-08-05 10:29:11秀才
日期:2016-08-05 10:28:57秀才
日期:2016-08-05 10:28:57秀才
日期:2016-08-05 10:28:57秀才
日期:2016-09-27 15:16:21
 楼主| 发表于 2017-11-15 13:49 | 显示全部楼层
lujinke 发表于 2017-11-14 16:20
1,检查你提供的用于连接MySQL的用户名和账号是否OK的
2,检查你的防火墙是否对于数据库端口是否是开放的
...

[oracle@iZ2zehy7gff0kpg1swp1czZ response]$ mysql -uroot -p123456 -P33091 -h127.0.0.1
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.20-log MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
我用mysql命令链接时,有个提示说在命令行里最好不写密码,这会有问题吗,但最后能链接上,请教如何解决

使用道具 举报

回复
论坛徽章:
3
懒羊羊
日期:2015-03-04 14:52:112015年新春福章
日期:2015-03-06 11:58:18蒙奇·D·路飞
日期:2017-09-21 11:23:37
发表于 2017-11-16 11:39 | 显示全部楼层
本帖最后由 lujinke 于 2017-11-16 11:40 编辑
flzhang 发表于 2017-11-15 13:49
[oracle@iZ2zehy7gff0kpg1swp1czZ response]$ mysql -uroot -p123456 -P33091 -h127.0.0.1
mysql: [Warn ...

这个不会有问题,你只测试了33091端口,还有33092,33093,如果都没有问题,把配置中hostname换成127.0.0.1试试

使用道具 举报

回复
论坛徽章:
32
优秀写手
日期:2014-07-23 06:00:13秀才
日期:2016-08-05 10:34:04秀才
日期:2016-08-05 10:34:04秀才
日期:2016-08-05 10:28:31秀才
日期:2016-08-05 10:33:40技术图书徽章
日期:2016-08-05 10:29:11秀才
日期:2016-08-05 10:28:57秀才
日期:2016-08-05 10:28:57秀才
日期:2016-08-05 10:28:57秀才
日期:2016-09-27 15:16:21
 楼主| 发表于 2017-11-16 17:04 | 显示全部楼层
本帖最后由 flzhang 于 2017-11-16 17:05 编辑
lujinke 发表于 2017-11-16 11:39
这个不会有问题,你只测试了33091端口,还有33092,33093,如果都没有问题,把配置中hostname换成127.0.0. ...

三个实例都能链接,我写了perl程序,也能连接到mysql上,防火墙是firewall-cmd --state 查看也关闭了,如下是我得host文件,
[root@iZ2zehy7gff0kpg1swp1czZ bin]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1   iZ2zehy7gff0kpg1swp1czZ  zlhost
172.17.225.197 iZ2zehy7gff0kpg1swp1czZ
不知有影响么,用repl去测试一直在报这个错,就是找不到live的mysql,
好奇怪啊

使用道具 举报

回复
论坛徽章:
3
懒羊羊
日期:2015-03-04 14:52:112015年新春福章
日期:2015-03-06 11:58:18蒙奇·D·路飞
日期:2017-09-21 11:23:37
发表于 2017-11-17 11:36 | 显示全部楼层
这样能连通吗:mysql -uroot -p123456 -P33091 -hzlhost

使用道具 举报

回复
论坛徽章:
32
优秀写手
日期:2014-07-23 06:00:13秀才
日期:2016-08-05 10:34:04秀才
日期:2016-08-05 10:34:04秀才
日期:2016-08-05 10:28:31秀才
日期:2016-08-05 10:33:40技术图书徽章
日期:2016-08-05 10:29:11秀才
日期:2016-08-05 10:28:57秀才
日期:2016-08-05 10:28:57秀才
日期:2016-08-05 10:28:57秀才
日期:2016-09-27 15:16:21
 楼主| 发表于 2017-11-17 12:50 | 显示全部楼层
lujinke 发表于 2017-11-17 11:36
这样能连通吗:mysql -uroot -p123456 -P33091 -hzlhost

您看如下命令,链接三个实例端口double可以的
[root@iZ2zehy7gff0kpg1swp1czZ ~]# mysql -uroot -p123456 -P33091 -hzlhost
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.20-log MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> exit
Bye
[root@iZ2zehy7gff0kpg1swp1czZ ~]# mysql -uroot -p123456 -P33092 -hzlhost
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.20-log MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> exit
Bye
[root@iZ2zehy7gff0kpg1swp1czZ ~]# mysql -uroot -p123456 -P33093 -hzlhost
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.20-log MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

使用道具 举报

回复
论坛徽章:
32
优秀写手
日期:2014-07-23 06:00:13秀才
日期:2016-08-05 10:34:04秀才
日期:2016-08-05 10:34:04秀才
日期:2016-08-05 10:28:31秀才
日期:2016-08-05 10:33:40技术图书徽章
日期:2016-08-05 10:29:11秀才
日期:2016-08-05 10:28:57秀才
日期:2016-08-05 10:28:57秀才
日期:2016-08-05 10:28:57秀才
日期:2016-09-27 15:16:21
 楼主| 发表于 2017-11-17 12:53 | 显示全部楼层
本帖最后由 flzhang 于 2017-11-17 12:55 编辑
lujinke 发表于 2017-11-17 11:36
这样能连通吗:mysql -uroot -p123456 -P33091 -hzlhost

我还写了一个perl 去链接mysql也可以的,就是MHA 里的check_repl找不出alive的server
脚本如下
#!/usr/bin/perl -w
use strict;
use DBI;
my $dbh = DBI->connect("DBI:mysql:mysql:zlhost:33091", 'root', '123456');
my $sth = $dbh->prepare("SELECT host FROM mysql.user");
$sth->execute();
while ( my @row = $sth->fetchrow_array() )
{
       print join('\t', @row)."\n";
}
$sth->finish();
$dbh->disconnect();
执行结果
[root@iZ2zehy7gff0kpg1swp1czZ script]# perl perConDB.pl
%
%
127.0.0.1
localhost
localhost
localhost

使用道具 举报

回复
论坛徽章:
3
懒羊羊
日期:2015-03-04 14:52:112015年新春福章
日期:2015-03-06 11:58:18蒙奇·D·路飞
日期:2017-09-21 11:23:37
发表于 2017-11-17 16:47 | 显示全部楼层
flzhang 发表于 2017-11-17 12:53
我还写了一个perl 去链接mysql也可以的,就是MHA 里的check_repl找不出alive的server
脚本如下
#!/usr/ ...

那就有点奇怪了,把log_level调成debug看看,你如果会写perl的话,直接看出错的行,加一些print信息进去,比如打印出数据库链接信息等,看看断在哪一步,MHA的报错信息确实不太友好,我上次出现这个问题是因为防火墙端口未开

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 虎吧 老博客 知识索引树 读书频道 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛 | SAP ERP系统
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表