首页 > 编程笔记 > Linux笔记 阅读:10

Linux mytop命令的安装和使用(附带实例)

Linux 中的 mytop 是一个类似于 top 命令的 MySQL 监控工具,可以监控当前用户正在执行的命令。

Linux mytop安装

首先,使用源码安装 mytop-1.6.tar.gz,命令如下:
[root@localhost ~]# tar -zxvf mytop-1.6.tar.gz
[root@localhost ~]# cd mytop-1.6
[root@localhost mytop-1.6]# perl Makefile.PL
[root@localhost mytop-1.6]# make
[root@localhost mytop-1.6]# make test
[root@localhost mytop-1.6]# make install
[root@localhost mytop-1.6]#

直接输入 mytop 命令,结果如下:
[root@localhost mytop-1.6]# mytop
Can't locate DBI.pm in @INC (@INC contains:
/usr/lib/perl5/5.10.0/i386-linux-thread-multi /usr/lib/perl5/5.10.0
/usr/lib/perl5/site_perl/5.10.0/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.10.0 /usr/lib/perl5/site_perl/5.8.8
/usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6
/usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl/5.8.8
/usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6
/usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl .) at /usr/bin/mytop line
22.
BEGIN failed--compilation aborted at /usr/bin/mytop line 22.
发现报错了,出现“Can't locate DBI.pm in @INC”这种问题的主要原因是系统没有安装 DBI 组件。要解决这个问题,可以安装DBI、Data-ShowTable、DBD-mysql(假设已安装了 Perl 和 MySQL 数据库)。

下面可以直接到 ftp://ftp.funet.fi/pub/languages/perl/CPAN/modules/by-module 下载 DBI-1.601.tar.gz、Data-ShowTable-3.3.tar.gz、DBD-mysql-3.0007_1.tar.gz 文件,它们分别处于 DBI、Data、DBD 目录下。

首先,解压这 3 个压缩文件,命令如下:
[root@localhost ~]#tar zxvf DBI-1.601.tar.gz
[root@localhost ~]#tar zxvf Data-ShowTable-3.3.tar.gz
[root@localhost ~]#tar zxvf DBD-mysql-3.0007.tar.gz

然后安装 DBI,命令如下:
[root@localhost ~]# cd DBI-1.601
[root@localhost DBI-1.601]# perl ./Makefile.PL
[root@localhost DBI-1.601]# make
[root@localhost DBI-1.601]# make test
[root@localhost DBI-1.601]# make install

再安装 Data-ShowTable,命令如下:
[root@localhost ~]# cd Data-ShowTable-3.3
[root@localhost Data-ShowTable-3.3]# perl ./Makefile.PL
[root@localhost Data-ShowTable-3.3]# make
[root@localhost Data-ShowTable-3.3]# make install (注:无需 make test)

最后安装 DBD-mysql,命令如下:
[root@localhost src]# cd DBD-mysql-3.0007_1
[root@localhost DBD-mysql-3.0007_1]# perl ./Makefile.PL
--libs="-L/usr/local/mysql-6.0.9-alhpa/lib/mysql -lmysqlclient -lz -lrt -lcrypt -lnsl
-lm"  --cflags=" -I/usr/local/mysql-6.0.9-alpha/include/mysql -g -DUNIV_LINUX"
--testuser=root --testsocket=/home/cserken/mysql/tmp/mysql.sock
[root@localhost DBD-mysql-3.0007_1]# make
[root@localhost DBD-mysql-3.0007_1]# make test
[root@localhost DBD-mysql-3.0007_1]# make install

测试一下,结果发现问题还没有解决,因为没有安装 TermReadKey。下面安装 TermReadkey,命令如下:
[root@localhost ~]# tar -xzvf TermReadKey-2.30.tar.gz
[root@localhost ~]# cd TermReadKey-2.30
[root@localhost TermReadKey-2.30]# perl ./Makefile.PL
[root@localhost TermReadKey-2.30]# make
[root@localhost TermReadKey-2.30]# make install

再测试一下 mytop 命令,结果显示正常运行了,如下所示:
[root@localhost ~]# cd mytop-1.6
[root@localhost mytop-1.6]# mytop
MySQL on localhost (5.5.27-ndb-7.2.8-cluster-gpl-log)    up 4+11:10:38 [19:18:03]
Queries: 3.0    qps:    0 Slow:     0.0         Se/In/Up/De(%):    00/00/00/00
[root@localhost ~]#
Key Efficiency: 75.0%  Bps in/out:   0.0/  0.0
 
     Id      User         Host/IP         DB      Time    Cmd Query or State
     --      ----         -------         --      ----    --- ----------
   3835      root       localhost       test         0  Query show full process

mytop 命令的各个参数的含义如下:

选项 说明
-u / --user <USERNAME> 指定用户名,预设是 root
-p / --pass / --password <PASSWORD> 指定密码,预设是 none
-h / --host <HOSTNAME[:PORT]> 指定 MySQL 服务器的主机名,预设是 localhost
-P / --port <PORT> 指定连接 MySQL 服务器的端口,预设是 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 / --noheader 是否要显示表头,预设是 header
--color / --nocolor 是否要使用颜色,预设是 color
-i / -idle / -noidle idle 的 thread 是否要出现在清单上,预设是 idle

【实例】 mytop 命令的使用。先在 MySQL 数据库中创建 xfimti 用户,SQL 语句如下:
mysql> grant all privileges on *.* to 'xfimti'@'localhost' identified by '123';
Query OK, 0 rows affected (0.01 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)

再输入 mytop 命令,监控信息显示如下:
[root@localhost ~]# cd mytop-1.6
[root@localhost mytop-1.6]# ./mytop -u xfimti -p123 -d test -s /temp/mysql.socket

MySQL on localhost (5.5.27-ndb-7.2.8-cluster-gpl-log)    up 4+11:39:16 [19:46:41]
Queries: 3.0    qps:    0 Slow:     0.0         Se/In/Up/De(%):    00/00/00/00

Key Efficiency: 83.3%  Bps in/out:   0.0/  0.0
     Id      User         Host/IP         DB      Time    Cmd Query or State
     --      ----         -------         --      ----    --- ----------
   3875    xfimti       localhost       test         0  Query show full process

相关文章