用户名: 密码: 忘记密码? 注册

运行mysqlreport工具报错

作者:  时间: 2010-11-03

今天下了个mysqlreport工具,结果运行的时候报如下错误:

[root@tj-test mysqlreport-3.5]#./mysqlreport
Can't locate DBI.pm in @INC (@INC contains: /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at ./mysqlreport line 24.
BEGIN failed--compilation aborted at ./mysqlreport line 24.

原因:由于我的mysql是编译安装的,在网上找了一圈都是要安装RPM云云的,不适合我的情况,后面就直接搜索了一下Can't locate DBI.pm in @INC 关键字,发现有篇博文是说编译安装DBI组件的,原来是系统没有按安装DBI组件。下面是转的关键内容:


DBI(Database Interface)是perl连接数据库的接口。其是perl连接数据库的最优秀方法,他支持包括Orcal,Sybase,mysql,db2等绝大多数的数据库。
解决办法:安装DBI、Data-ShowTable、DBD-mysql (假设你已安装完perl和mysql数据库)。具体如下:
ftp://ftp.funet.fi/pub/languages/perl/CPAN/modules/by-module下载三个文件DBI-1.601.tar.gz、Data-ShowTable-3.3.tar.gz、DBD-mysql-3.0007_1.tar.gz,分别处于DBI,DATA,BDB目录下。注意下载的DBI的版本不能太低,如之前作者下载过低版本DBI-1.20不能编译通过。下载后最好保存在目录:/usr/local/src下,并解压产生各模块的安装文件目录。如下
[root@localhost src]#tar zxvf DBI-1.601.tar.gz
[root@localhost src]#tar zxvf Data-ShowTable-3.3.tar.gz
[root@localhost src]#tar zxvf DBD-mysql-3.0007_1.tar.gz
安装DBI
[root@localhost src]# cd DBI-1.601
[root@localhost DBI-1.601]# perl Makefile.PL
[root@localhost DBI-1.601]# make
[root@localhost DBI-1.601]# make test
[root@localhost DBI-1.601]# make install
安装Data-ShowTable
[root@localhost src]# cd Data-ShowTable-3.3
[root@localhost Data-ShowTable-3.3]# perl Makefile.PL
[root@localhost Data-ShowTable-3.3]# make  (注:第一次make出错,再make多几次)
[root@localhost Data-ShowTable-3.3]# make install (注:无需make test)
安装DBD-mysql
[root@localhost src]# cd DBD-mysql-3.0007_1
[root@localhost DBD-mysql-3.0007_1]# perl Makefile.PL --libs="-L/server/mysql/lib/mysql -lmysqlclient -lz -lrt -lcrypt -lnsl -lm"  --cflags=" -I/server/mysql/include/mysql -g -DUNIV_LINUX" --testuser=root --testsocket=/tmp/mysql.sock
[root@localhost DBD-mysql-3.0007_1]# make
[root@localhost DBD-mysql-3.0007_1]# make test
[root@localhost DBD-mysql-3.0007_1]# make install
安装完毕