mha的node软件包依赖于perl-DBD-Mysql 这个包,我之前有遇到过用yum安装perl-DBD-MySQL,安装完成后不能正常使用的情况,所以这里选择源码编译安装;

perl5.10.1这个版本的Socket 模块由于没有导出gethostinfo,getipinfo这两个函数,所以mha在这个版本的perl解释器上执行会出错,所以要升级一下Socket模块。

【1】安装依赖的依赖、由于要用到编译安装、所以先要把gcc编译器安装上。

yum -y install gcc gcc-c++

【2】从www.cpan.org中下载相关perl模块并安装

1、perl-DBD-MySQL、perl-ExtUtils-Constant、perl-Socket

2、找到模块的链接

3、点击左边栏的download就可以下载了

为什么在这里把cpan说这么细、主要是我感觉这个UI对用户不在友好

4、安装ExtUtils-Constant 因为之后安装的Socket 模块要依赖到它

tar -xzvf ExtUtils-Constant-0.23.tar.gz
cd ExtUtils-Constant-0.23
perl Makefile.PL
make
make install

5、更新Socket模块

tar -xzvf Socket-2.024.tar.gz
cd Socket-2.024
perl Makefile.PL
make
make install

6、安装DBD-MySQL模块

tar -xzvf DBD-mysql-4.038.tar.gz
cd DBD-mysql-4.038
perl Makefile.PL --mysql_config=/usr/local/mysql/bin/mysql_config --with-mysql=/usr/local/mysql
make
make install

6.1、就我目前的经验来说,mha最容易出错的地方就是这样perl-DBD-MySQL了;安装的时候没有报错不一定就可以说明你安装成功了,还是要测试一下的。

perl-DBD-MySQL的测试脚本如下

#!/usr/bin/perl

use strict;
use warnings;
use DBI; #Connect to the database.
my $dbh = DBI->connect("DBI:mysql:database=test;host=127.0.0.1",
"appuser", "",
{'RaiseError' => });
my $sth = $dbh->prepare("SELECT 1 as value");
$sth->execute();
my $result = $sth->fetchrow_hashref();
print "----ok---- $result->{value}\n";
$sth->finish();
$dbh->disconnect();

常见的错误有两处:

1、没有导出mysql的共享库文件/usr/local/mysql/lib/ 这个时候就算你编译DBD-MySQL安装通过了,在你编译mha-node的时候,它还是会报没有安装perl-DBD-MySQL

2、在编译DBD-MySQL的时候没有指定--mysql_config &--with-mysql 、这种情况下mha-node还是可以编译成功的,在mha运行的时候连接不上mysql;

【3】安装mha-node软件包

unzip mha4mysql-node-master.zip
cd mha4mysql-node-master
perl Makefile.PL
make
make install

MHA环境搭建【3】node相关依赖的解决的更多相关文章

  1. MySQL MHA环境搭建

    MHA功能: 1,从故障的mysql保存二进制日志时间(binlog events);2,识别含有最新更新的slave:3,应用差异的中继日志(relay log)到其他的slave:4,应用从mas ...

  2. 前端开发 Vue -1windows环境搭建Vue Node开发环境

    解决几个疑问: 想学习下vue.js,我理解的它是一个前端的框架,主要作用是对数据的处理,和juqery类似,所以不太理解为什么要在nodejs中npm install vue呢?在html文件中引入 ...

  3. 小白学习VUE第二课:环境搭建 VUE Node.js VSCode template模板

    环境搭建 VUE Node.js VSCode template模板: 首先安装node:http://www.runoob.com/nodejs/nodejs-install-setup.html ...

  4. 十、.net core(.NET 6)搭建ElasticSearch(ES)系列之Java环境搭建和Node.js环境搭建

    安装java jdk环境:我此处使用的是jdk16版本.下载地址: https://www.oracle.com/java/technologies/javase-jdk16-downloads.ht ...

  5. MHA环境搭建【4】manager相关依赖的解决

    mha的manager 结点依赖与mha-node软件包.所以在安装mha-manager之前要把mha-node安装上去:再者mha-manger还依赖于perl-Config-Tiny perl- ...

  6. MHA环境搭建

    准备工作 数据库架构 角色 ip地址 主机名 server_id Master Slave1 Slave2 配置三台服务器ssh免秘钥认证 ssh-keygen -t rsa ssh-copy-id ...

  7. Vue环境搭建及node安装过程整理

    一.nodejs的安装 Node.js安装包及源码下载地址为:https://nodejs.org/en/download/. 我们可以根据不同平台系统选择你需要的Node.js安装包.Node.js ...

  8. 【go】继续go go go,ubuntu环境搭建及golang的依赖关系分析

    这次是在ubuntu14.04 amd64上搭建go的编译环境,使用的IDE换成了sublime text,具体步骤参照的是 http://blog.csdn.net/aqiang912/articl ...

  9. app自动化测试环境搭建之node+appium+ADT+MUMU模拟器

    一.安装Microsoft .NET Framework 4.5 检测本机已安装的程序中,是否已经安装Microsoft .NET Framework 4.5及以上的版本 如果没有安装,则获取安装文件 ...

随机推荐

  1. Okhttp3日志采集功能

    原文地址以示尊重:http://www.jianshu.com/p/d836271b1ae4 日志采集是一个APP必备的功能,可以方便开发人员快速定位问题,解决问题,那么我们在使用okhttp的时候应 ...

  2. 将主机IDS OSSEC日志文件存入MYSQL的方法

    将主机IDS OSSEC日志文件存入MYSQL的方法 http://www.freebuf.com/articles/system/6139.html http://ossec-docs.readth ...

  3. Qt 的信号与槽机制介绍(10个要注意的问题)

    QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象.易于扩展.真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT ...

  4. 关于API的设计和需求抽象

    一,先来谈抽象吧,因为抽象跟后面的API的设计是息息相关的 有句话说的好(不知道谁说的了):计算机科学中的任何问题都可以抽象出一个中间层就解决了. 抽象是指在思维中对同类事物去除其现象的.次要的方面, ...

  5. Android中各种onTouch事件

    Android里有两个类 android.view.GestureDetector android.view.GestureDetector.SimpleOnGestureListener 1) 新建 ...

  6. c指针点滴4-指针的值

    #include <stdio.h> #include <stdlib.h> void main() { ; int *p = &num; //double *p1 = ...

  7. C# 合成图片

    教师节快到了,给那些年的老师拼个图 前端有脸.眉.眼.特征.气泡等多元素图片 后端将最后选中元素的ID,合成“脸谱” /// <summary> /// 合并图片 /// </sum ...

  8. c++ 之 字符和字符串

    字符 1.字符的分类 字符主要包括字母.数字.标点符号.控制字符等 在ASCII编码表中,每一个字符都用一个十进制数来表示 注:ASCII的全称是American Standard Code for ...

  9. 泛型 Field 和 SetField 方法 (LINQ to DataSet)

    LINQ to DataSet 为 DataRow 类提供用于访问列值的扩展方法:Field 方法和 SetField 方法.这些方法使开发人员能够更轻松地访问列值,特别是 null 值.DataSe ...

  10. C++11多线程教学II

    从我最近发布的C++11线程教学文章里,我们已经知道C++11线程写法与POSIX的pthreads写法相比,更为简洁.只需很少几个简单概念,我们就能搭建相当复杂的处理图片程序,但是我们回避了线程同步 ...