mytop

http://www.oschina.net/p/mytop


mytop 是一个类似 Linux 下的 top 命令风格的 MySQL 监控工具,可以监控当前的连接用户和正在执行的命令


【安装mytop】

 

1、安装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-2.30
# perl Makefile.pl
# make && make install


2、安装mytop所需的DBI

 

http://down1.chinaunix.net/distfiles/DBI-1.615.tar.gz

 

# tar xzvf DBI-1.615.tar.gz
# cd DBI-1.615
# perl Makefile.pl
# make && make install

 

3、安装DBD-mysql

 

http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.011.tar.gz


# tar zxf DBD-mysql-4.011.tar.gz

# cd  ../DBD-mysql-4.011
# perl Makefile.PL
# make  &&  make install

 

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 install

# ./mytop -u root -p 123456 -h 192.168.4.105:3306 -d test 到此就OK!!!


设置一下配置文件 mytop 的配置文件在 ~/.mytop 自己新建一个

# vi ~/.mytop 输入如下内容,保存

user=你的mysql用户pass=你的mysql密码host=localhostdb=你要监控的数据库名delay=5 port=3306

socket=/var/lib/mysql/mysql.sockbatchmode=0 header=1 color=1 idle=1

:wq

# mytop -u root -p 123456 -h 192.168.4.105:3306 -d test

注意:
socket 设置和 my.cnf 里的路径一样,一般我们是 mytop 和 mysql 在同一台机。


显示结果:

第一行显示了主机名称,还有至今 MySQL 的运行时间 (以 days+hour:minutes:seconds 为格式)。

第二行的 Queries 显示了至今执行的 SQL 查询语句总数,另外还有目前每秒处理的查询数和速度。

第三行的 Key Efficiency 就是传说中的缓存命中率了,如果太低了你可能要调整你的 MySQL 设置,或者调整

一下表的结构,后面还有目前的进出速度。

最下方的区域就是目前链接到数据库的各个线程,你可以按 k 杀死一个线程,或者按 f 了解特定线程的信息

 


【mytop 远端监控】
若将 mytop 装在另一台机器上时,需要设定 MySQL server 上的权限,才有办法远端监控
(1)在 MySQL server 上新增一个帐号,并给它 process 的权限

mysql -u root -p
mysql> grant process on *.* to <remote_username>@<remote_ip> identified by '<password>' ;
mysql> flush privileges;
mysql> exit (2)在安装 mytop 的电脑上,用参数指定或修改配置文件的设定

mytop -u <REMOTE_USERNAME> -p <PASSWORD> -h <MYSQL_SERVER_IP>
或修改 .mytop
user=<remote_username>
pass=<password>
host=<mysql_server_ip>

 


【mytop 命令参数】

-u / --user <username>:指定 username,预设是 root
-p / --pass / --password <password>:指定 password,预设是 none
-h / --host <hostname [:PORT]>:指定 MySQL server 的 hostname,预设是 localhost
-P / --port <port>:指定连接 MySQL server 的 port,预设是 3306
-s / --delay <seconds>:更新的秒数,预设是 5 秒
-d / --db / --database <database>:指定连接的资料库,预设是 test
-b / --batch / --batchmode:指定为 batch mode,每次更新不会清除旧的显示结果,会将更新资料显示上最

上方,预设是 unset
-S / --socket <path_to_socket>:指定使用 MySQL socket 直接连线,而不使用 TCP/IP 连线,预设是 none

(当 mytop 和 MySQL 在同一台时才能使用)
--header or -noheader:是否要显示表头,预设是 header
--color or --nocolor:是否要使用颜色,预设是 color
-i / -idle or -noidle:idle 的 thread 是否要出现在清单上,预设是 idl [注意] 因 .mytop 内有 MySQL

server 的密码,请注意档案权限

【mytop 快捷键】
s:设定更新时间
p:暂停画面更新
q:离开
u:只看某个使用者的 thread
o:反转排列顺序