mytop 是一个类似 Linux 下的 top 命令风格的 MySQL 监控工具,可以监控当前的连接用户和正在执行的命令。
1. 安装TermReadKey
下载地址:http://search.cpan.org/CPAN/authors/id/J/JS/JSTOWE/TermReadKey-2.30.tar.gz
安装:
tar xzvf TermReadKey
cd TermReadKey
perl Makefile.pl
make
make test
make install
2. 安装DBI
下载地址:http://cpan.uwinnipeg.ca/dist/DBI
安装:
tar xzvf DBI-1.615.tar.gz
cd DBI-1.615
perl Makefile.pl
make
make test
make install
或者:
[root@hd-119-186 mytop-1.6]# yum list|grep DBD
Unable to read consumer identity
perl-DBD-MySQL.x86_64 3.0007-2.el5 installed
perl-DBD-Pg.x86_64 1.49-2.el5_3.1 hc360
[root@hd-119-186 mytop-1.6]# yum -y install perl-DBD-MySQL.x86_64
3. 安装Mytop
下载地址:http://jeremy.zawodny.com/mysql/mytop/mytop-1.6.tar.gz
安装:
tar xzvf mytop-1.6.tar.gz
cd mytop-1.6
perl Makefile.pl
make
make test
make install
4.执行 mytop -uroot -pxxxxx 可能会出现报错:
MySQL on localhost
(5.1.43-log)
up 345+20:36:31 [09:07:11]
Queries: 3.0 qps: 0 Slow: 0.0 Se/In/Up/De(%): 00/00/00/00
Key Efficiency: 100.0% Bps in/out: 0.0/ 0.0
Id User
Host/IP DB Time Cmd Query or State
-- ----
------- -- ---- --- ----------
Use of uninitialized value in substitution (s///) at ./mytop line 955.
Use of uninitialized value in substitution (s///) at ./mytop line 955.
...................................................
Use of uninitialized value in substitution (s///) at ./mytop line 955.
解决方法:
vi mytop
跳到955行,找到
$host =~ s/^([^.]+).*/$1/;
$thread->{Host} = $host;
改为:
if ($host)
{
$host =~ s/^([^.]+).*/$1/;
$thread->{Host} = $host;
}
三、参数
-u / --user :指定 username,预设是 root
-p / --pass / --password :指定 password,预设是 none
-h / --host :指定 MySQL server 的 hostname,预设是 localhost
-P / --port :指定连接 MySQL server 的 port,预设是 3306
-s / --delay :更新的秒数,预设是 5 秒
-d / --db / --database :指定连接的资料库,预设是 test
-b / --batch / --batchmode:指定为 batch mode,每次更新不会清除旧的显示结果,会将更新资料显示上最上方,预设是 unset
-S / --socket :指定使用 MySQL socket 直接连线,而不使用 TCP/IP 连线,预设是 none (当 mytop 和 MySQL 在同一台时才能使用)
--header or -noheader:是否要显示表头,预设是 header
--color or --nocolor:是否要使用颜色,预设是 color
-i / -idle or -noidle:idle 的 thread 是否要出现在清单上,预设是 idle
mytop 快捷键
s:设定更新时间
p:暂停画面更新
q:离开
u:只看某个使用者的 thread
o:反转排列顺序