最近研究了下MySQL的监控工具mytop,也在网络上搜罗了很久,按照他们的流程总是安装不成功,也许是环境不一样的原因吧。在安装的过程中遇到很多问题,迟迟不能解决,但是,在经过一番努力之后终于安装成功了,现在加以详细汇总,以备将来使用,同时也可以给各位博友提供一份参考,将我个人的安装过程贴出来,仅供参考,如有疑问请联系QQ:349871740,欢迎指正^_^
1、OS版本:Red Hat Enterprise Linux Server release 5.3
MySQL版本:4.0.26
2、安装文件列表:
MySQL-shared-compat-5.1.57-1.rhel5.i386.rpm
mytop-1.6.tar.gz
perl-DBD-MySQL-3.0007-2.el5.i386.rpm
perl-DBI-1.52-2.el5.i386.rpm
TermReadKey-2.30.tar.gz
3、相关文件下载链接:
wget http://search.cpan.org/CPAN/authors/id/J/JS/JSTOWE/TermReadKey-2.30.tar.gz
wget http://jeremy.zawodny.com/mysql/mytop/mytop-1.6.tar.gz
wget ftp://mirror.switch.ch/pool/1/mirror/mysql/Downloads/MySQL-5.1/MySQL-shared-compat-5.1.57-1.rhel5.i386.rpm
wget ftp://ftp.icm.edu.pl/vol/rzm2/linux-slc/slc54/i386/SL/perl-DBD-MySQL-3.0007-2.el5.i386.rpm
wget ftp://ftp.icm.edu.pl/vol/rzm2/linux-slc/slc58/i386/SL/perl-DBI-1.52-2.el5.i386.rpm
4、安装流程如下:
[root@tech tmp]# tar zxvf TermReadKey-2.30.tar.gz && cd TermReadKey-2.30
[root@tech TermReadKey-2.30]# perl Makefile.PL && make && make install
[root@tech TermReadKey-2.30]# cd ..
[root@tech tmp]# rpm -Uvh MySQL-shared-compat-5.1.57-1.rhel5.i386.rpm perl-DBD-MySQL-3.0007-2.el5.i386.rpm perl-DBI-1.52-2.el5.i386.rpm
[root@tech tmp]# tar zxvf mytop-1.6.tar.gz && cd mytop-1.6
[root@tech mytop-1.6]# perl Makefile.PL && make && make install
5、配置mytop并运行
[root@tech mytop-1.6]# mytop
Cannot connect to MySQL server. Please check the:
* database you specified "test" (default is "test")
* username you specified "root" (default is "root")
* password you specified "" (default is "")
* hostname you specified "localhost" (default is "localhost")
* port you specified "3306" (default is 3306)
* socket you specified "" (default is "")
The options my be specified on the command-line or in a ~/.mytop
config file. See the manual (perldoc mytop) for details.
Here's the exact error from DBI. It might help you debug:
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[root@tech mytop-1.6]# cat << EOF >/root/.mytop
> user=root
> pass=123456
> host=127.0.0.1
> db=cacti
> delay=10
> port=3306
> resolve=0
> socket=/tmp/mysql.sock
> EOF
[root@tech mytop-1.6]# mytop
6、更详细的参数选项请参考man手册,这里不再赘述。
[root@tech mytop-1.6]# man mytop
7、以下是我的安装和配置过程:
[root@tech ~]# uname -a
Linux tech 2.6.18-128.el5PAE #1 SMP Wed Dec 17 12:02:33 EST 2008 i686 i686 i386 GNU/Linux
[root@tech ~]# lsb_release -a
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: RedHatEnterpriseServer
Description: Red Hat Enterprise Linux Server release 5.3 (Tikanga)
Release: 5.3
Codename: Tikanga
[root@tech ~]# cat /etc/issue
Red Hat Enterprise Linux Server release 5.3 (Tikanga)
Kernel \r on an \m
[root@tech ~]# cd /tmp
[root@tech tmp]# ll
total 6144
-rw-r--r-- 1 root root 5443408 Mar 24 19:17 MySQL-shared-compat-5.1.57-1.rhel5.i386.rpm
-rw-r--r-- 1 root root 19720 Mar 24 18:39 mytop-1.6.tar.gz
-rw-r--r-- 1 root root 150649 Oct 16 2008 perl-DBD-MySQL-3.0007-2.el5.i386.rpm
-rw-r--r-- 1 root root 613929 Mar 24 19:06 perl-DBI-1.52-2.el5.i386.rpm
-rw-r--r-- 1 root root 37006 Jun 13 10:56 TermReadKey-2.30.tar.gz
-rw-r--r-- 1 root root 0 Jun 16 14:42 typescript
[root@tech tmp]# tar zxvf TermReadKey-2.30.tar.gz && cd TermReadKey-2.30
TermReadKey-2.30/
TermReadKey-2.30/genchars.pl
TermReadKey-2.30/Makefile.PL
TermReadKey-2.30/Configure.pm
TermReadKey-2.30/test.pl
TermReadKey-2.30/ReadKey.pm
TermReadKey-2.30/META.yml
TermReadKey-2.30/ReadKey.xs
TermReadKey-2.30/ppport.h
TermReadKey-2.30/MANIFEST
TermReadKey-2.30/README
[root@tech TermReadKey-2.30]# perl Makefile.PL && make && make install
Checking if your kit is complete...
Looks good
Writing Makefile for Term::ReadKey
cp ReadKey.pm blib/lib/Term/ReadKey.pm
AutoSplitting blib/lib/Term/ReadKey.pm (blib/lib/auto/Term/ReadKey)
/usr/bin/perl -I/usr/lib/perl5/5.8.8 genchars.pl
Writing termio/termios section of cchars.h... Done.
Checking for sgtty...
Sgtty NOT found.
Writing sgtty section of cchars.h... Done.
/usr/bin/perl /usr/lib/perl5/5.8.8/ExtUtils/xsubpp -noprototypes -typemap /usr/lib/perl5/5.8.8/ExtUtils/typemap ReadKey.xs > ReadKey.xsc && mv ReadKey.xsc ReadKey.c
gcc -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -DVERSION=\"2.30\" -DXS_VERSION=\"2.30\" -fPIC "-I/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE" ReadKey.c
In file included from ReadKey.xs:6:
ppport.h:230:1: warning: "PERL_UNUSED_DECL" redefined
In file included from ReadKey.xs:4:
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/perl.h:163:1: warning: this is the location of the previous definition
In file included from ReadKey.xs:375:
cchars.h: In function 'XS_Term__ReadKey_GetControlChars':
cchars.h:244: warning: unused variable 'i'
ReadKey.xs: In function 'ReadMode':
ReadKey.xs:770: warning: unused variable 'Perl___notused'
ReadKey.c: In function 'XS_Term__ReadKey_SetTerminalSize':
ReadKey.c:1999: warning: unused variable 'targ'
Running Mkbootstrap for Term::ReadKey ()
chmod 644 ReadKey.bs
rm -f blib/arch/auto/Term/ReadKey/ReadKey.so
gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -L/usr/local/lib ReadKey.o -o blib/arch/auto/Term/ReadKey/ReadKey.so \
\
chmod 755 blib/arch/auto/Term/ReadKey/ReadKey.so
cp ReadKey.bs blib/arch/auto/Term/ReadKey/ReadKey.bs
chmod 644 blib/arch/auto/Term/ReadKey/ReadKey.bs
Manifying blib/man3/Term::ReadKey.3pm
Installing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Term/ReadKey/ReadKey.bs
Installing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Term/ReadKey/ReadKey.so
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Term/ReadKey/autosplit.ix
Installing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Term/ReadKey.pm
Installing /usr/share/man/man3/Term::ReadKey.3pm
Writing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Term/ReadKey/.packlist
Appending installation info to /usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod
[root@tech TermReadKey-2.30]# cd ..
[root@tech tmp]# rpm -Uvh MySQL-shared-compat-5.1.57-1.rhel5.i386.rpm perl-DBD-MySQL-3.0007-2.el5.i386.rpm perl-DBI-1.52-2.el5.i386.rpm
warning: perl-DBD-MySQL-3.0007-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
warning: perl-DBI-1.52-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
Preparing... ########################################### [100%]
1:perl-DBI ########################################### [ 33%]
2:MySQL-shared-compat ########################################### [ 67%]
3:perl-DBD-MySQL ########################################### [100%]
[root@tech tmp]# tar zxvf mytop-1.6.tar.gz && cd mytop-1.6
mytop-1.6/
mytop-1.6/MANIFEST
mytop-1.6/test.pl
mytop-1.6/mytop
mytop-1.6/Changes
mytop-1.6/INSTALL
mytop-1.6/README
mytop-1.6/Makefile.PL
mytop-1.6/META.yml
[root@tech mytop-1.6]# perl Makefile.PL && make && make install
Checking if your kit is complete...
Looks good
Writing Makefile for mytop
cp mytop blib/script/mytop
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mytop
Manifying blib/man1/mytop.1
Installing /usr/share/man/man1/mytop.1
Installing /usr/bin/mytop
Writing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/mytop/.packlist
Appending installation info to /usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod
[root@tech mytop-1.6]# mytop
Cannot connect to MySQL server. Please check the:
* database you specified "test" (default is "test")
* username you specified "root" (default is "root")
* password you specified "" (default is "")
* hostname you specified "localhost" (default is "localhost")
* port you specified "3306" (default is 3306)
* socket you specified "" (default is "")
The options my be specified on the command-line or in a ~/.mytop
config file. See the manual (perldoc mytop) for details.
Here's the exact error from DBI. It might help you debug:
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[root@tech mytop-1.6]# cat << EOF >/root/.mytop
> user=root
> pass=123456
> host=127.0.0.1
> db=cacti
> delay=10
> port=3306
> resolve=0
> socket=/tmp/mysql.sock
> EOF
[root@tech mytop-1.6]# mytop
MySQL on 127.0.0.1 (4.0.26) up 10+22:18:53 [14
:52:13]
Queries: 81.6k qps: 0 Slow: 810.0 Se/In/Up/De(%): 23/36/40/01
Cache Hits: 6.8k Hits/s: 0.0 Hits now: 0.0 Ratio: 35.8% Ratio now: 0.0%
Key Efficiency: 100.0% Bps in/out: 73.3/ 2.6k
Id User Host/IP DB Time Cmd Query or State
-- ---- ------- -- ---- --- ----------
156 root localhost cacti 0 Query show full processlist
8、总结:将以上安装过程写成脚本进行快速安装,由于IDC做了ACL限制,不能直接进行wget对安装文件进行下载,个人是首先将安装文件下载到个人电脑,然后上传到服务器的,以下是脚本示例,
[root@tech ~]# cat mytop_install.sh
_DIR=/tmp/wyq
cd ${_DIR}
tar zxvf TermReadKey-2.30.tar.gz && cd TermReadKey-2.30
perl Makefile.PL && make && make install
cd ..
rpm -Uvh MySQL-shared-compat-5.1.57-1.rhel5.i386.rpm perl-DBD-MySQL-3.0007-2.el5.i386.rpm perl-DBI-1.52-2.el5.i386.rpm
tar zxvf mytop-1.6.tar.gz && cd mytop-1.6
perl Makefile.PL && make && make install
cd ..
rm -rf TermReadKey-2.30 mytop-1.6
cat << EOF >/root/.mytop
user=root
pass=123456
host=127.0.0.1
db=cacti
delay=10
port=3306
resolve=0
socket=/tmp/mysql.sock
EOF
9、提示:请根据自己的实际环境修改mytop的配置文件以及安装脚本
注:2012年06月18号增加安装效果图,如下