因为安装nagios的扩展模块NDOUtile,需要用到perl mysql,因此需要安装DBI 和DBD::mysql模块,如果计算机处于联网状态,可直接利用CPAN来安装,很方便。
#perl -MCPAN -e shell
cpan>install DBI
cpan>install DBD::mysql
如果没有出错那很幸运,安装就成功了。我在安装DBD::mysql的时候提示错误:
all skipped: Can’t obtain driver handle. Can’t continue test
t/75supported_sql………..skipped
all skipped: ERROR: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2). Can’t continue test
t/76multi_statement………skipped
all skipped: ERROR: DBI connect(’test’,'root’,…) failed: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) at t/76multi_statement.t line 15
t/80procs……………….skipped
all skipped: ERROR: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2). Can’t continue test
Failed Test Stat Wstat Total Fail Failed List of Failed
——————————————————————————-
t/40blobs.t 255 65280 ?? ?? % ??
33 tests skipped.
Failed 1/35 test scripts, 97.14% okay. 0/6 subtests failed, 100.00% okay.
make: *** [test_dynamic] Error 255
/usr/bin/make test — NOT OK
Running make install
make test had returned bad status, won’t install without force
很明显是提示找不到/tmp/mysql.sock,当然你就要启动mysql了,另外你要确认你的mysql配置sock是存在路径/tmp/mysql.sock
还有个安装出错的可能是,如果用root进入CPAN来安装的话,系统会默认使用root来连接mysql数据库进行 make test,此时如果你的root for mysql有密码,就会提示make test出错,同样会在最后打印错误提示make test had returned bad status, won’t install without force
此时你需要清空一下你的mysql数据库的root密码:
1)以系统root权限登陆
(2)停止MYSQL服务器:
mysqladmin shutdown
(3)跳过授权表执行MYSQL服务器:
mysqld_safe –skip-grant-tables –skip-networking &
(注:参数–skip-grant-tables为跳过授权表;–skip-networking为不监听TCP/IP连接)
4)执行MYSQL客户端:
mysql
(5)使用mysql数据库
use mysql;
(6)更新root密码
update user set password=” where user=’root’;这里是加一个空密码给root;
(7)关闭mysql服务器,用正常方试起动。