mytop-一个神奇的mysql监控工具,mytop 是一个类似 Linux下的 top 命令风格的 MySQL 监控工具,可以监控当前的连接用户和正在执行的命令。
安装mytop所需TermReadKey
下载地址:http://search.cpan.org/CPAN/authors/id/J/JS/JSTOWE/TermReadKey-2.30.tar.gz
安装
tar xzvf TermReadKey-2.30.tar.gz
cd TermReadKey
perl Makefile.pl
make
make install
安装mytop所需的DBI
下载地址:http://mirrors.sohu.com/CPAN/authors/id/T/TI/TIMB/DBI-1.630.tar.gz
安装
tar xzvf DBI-1.630.tar.gz
cd DBI-1.630
perl Makefile.pl
make
make install
安装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 install
装好了,设置一下配置文件 mytop 的配置文件在 ~/.mytop 自己新建一个
# vim ~/.mytop
输入如下内容,保存
user=你的mysql用户
pass=你的mysql密码
host=localhost
db=你要监控的数据库名
delay=5
port=3306
socket=/tmp/mysql.sock
batchmode=0
header=1
color=1
idle=1
注意,socket 设置和 my.cnf 里的路径一样,一般我们是 mytop 和 mysql 在同一台机
mytop 命令参数
-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 内有 MySQL server 的密码,请注意档案权限
mytop 快捷键
s:设定更新时间
p:暂停画面更新
q:离开
u:只看某个使用者的 thread
o:反转排列顺序
mytop 远端监控
若将 mytop 装在另一台机器上时,需要设定 MySQL server 上的权限,才有办法远端监控
mytop错误解决
如果出现次此错误
Use of uninitialized value in substitution (s///) at /usr/bin/mytop line 958.
请按如下步骤修改:
#vim /usr/bin/mytop
{
$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;(添加)
}
}
}