Mytop工具的安装
mytop 是一个类似 Linux 下的 top 命令风格的 MySQL 监控工具,可以监控当前的连接用户和正在执行的命令。
效果图
1.编译
#cd /usr/loacl/src/tarbag
#wget http://jeremy.zawodny.com/mysql/mytop/mytop-1.6.tar.gz
#tar -zxvf mytop-1.6.tar.gz -C ../software
#cd mytop-1.6
#perl Makefile.PL
# make
#make test
# make install
#mytop
想要mytop更好的发挥他的功能,要确保满足一下要求,注意要顺序安装。
* Perl 5.005 or newer
* Getopt::Long
* DBI and DBD::mysql
* Term::ReadKey from CPAN
2.常见错误
(1)出现报错:
[root@www mytop-1.6]# mytop
Can't locate Term/ReadKey.pm in @INC (@INC contains: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /usr/bin/mytop line 175
当我们想使用Perl的时候,很可能会遇到当前系统不存在某个perl模块的情况,这时我们可以通过使用CPAN来对相应的模块进行获取
这说明系统缺少Term/ReadKey.pm这个模块,我们使用cpan来安装
#cpan
如果是第一次,这里会提示你是否手动配置,我是选择否
cpan>install Term::ReadKey
cpan>exit
(2)出现报错:
Use of uninitialized value in substitution (s///) at /usr/bin/mytop line 958.
#vim /usr/bin/mytop
修改这两部分
第一部分
#!/usr/bin/perl -w
+
+eval 'exec /usr/bin/perl -w -S $0 ${1+"$@"}'
+ if 0; # not running under some shell
#
# $Id: mytop,v 1.53 2003/09/18 17:58:36 jzawodn Exp $
第二部分
{
$thread->{Host} =~ s/:\d+$//;
my $host = gethostbyaddr(inet_aton($thread->{Host}), AF_INET);
- $host =~ s/^([^.]+).*/$1/;
- $thread->{Host} = $host;
+ if ($host)
+ {
+ $host =~ s/^([^.]+).*/$1/;
+ $thread->{Host} = $host;
+ }
}
(3)出现报错 Error in option spec: "long|!"
#vim /usr/in/mytop
"long|!" => \$config{long_nums}
改成
"long|long_nums|l!" => \$config{long_nums}
如果不熟悉工具的使用,请#man mytop来查看mytop的使用规范