Linux mytop命令的安装和使用(附带实例)
Linux 中的 mytop 是一个类似于 top 命令的 MySQL 监控工具,可以监控当前用户正在执行的命令。
直接输入 mytop 命令,结果如下:
下面可以直接到 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 个压缩文件,命令如下:
然后安装 DBI,命令如下:
再安装 Data-ShowTable,命令如下:
最后安装 DBD-mysql,命令如下:
测试一下,结果发现问题还没有解决,因为没有安装 TermReadKey。下面安装 TermReadkey,命令如下:
再测试一下 mytop 命令,结果显示正常运行了,如下所示:
mytop 命令的各个参数的含义如下:
【实例】 mytop 命令的使用。先在 MySQL 数据库中创建 xfimti 用户,SQL 语句如下:
再输入 mytop 命令,监控信息显示如下:
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