mytop安装,使用mytop监控MySQL性


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

mytop安装,使用mytop监控MySQL性_第1张图片
 

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;
                   }


二mytop工具使用

监控命令:

mytop-u root  -p '' -h 10.10.10.29 -P31005  -S/usr/local/mysql/tmp/mysql-31005.sock

监控画面如下:

mytop安装,使用mytop监控MySQL性_第2张图片

监控画面参数意义:

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

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

第四行的 Key Efficiency 就是传说中的缓存命中率了,如果太低了你可能要调整你的 MySQL 设置,或者调整一下表的结构,后面还有目前的进出速度。

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


三、参数
-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 是否要出现在清单上,预设是 idle 


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

/10/17 12:28

install_driver(mysql) failed: Can't locate DBD/mysql.pm的解决办法

Tags:  perl ,  mysql ,  解决
在运行mysqlhotcopy或mysqlreport等命令时,会提示如下错误信息:
引用
install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at (eval 7) line 3.
Perhaps the DBD::mysql perl module hasn't been fully installed,
or perhaps the capitalisation of 'mysql' isn't right.
Available drivers: DBM, ExampleP, File, Proxy, Sponge.
at bin/mysqlhotcopy line 177


今天解决了下,只需要安装perl-DBD-MySQL即可解决此问题。
yum install perl-DBD-MySQL
...
Dependencies Resolved

=====================================================================================================================
Package                         Arch                    Version                         Repository             Size
=====================================================================================================================
Installing:
perl-DBD-MySQL                  x86_64                  3.0007-2.el5                    base                  148 k

Transaction Summary
=====================================================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)

Total download size: 148 k
Is this ok [y/N]: y
Downloading Packages:
perl-DBD-MySQL-3.0007-2.el5.x86_64.rpm                                                        | 148 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : perl-DBD-MySQL                                                                                1/1 

Installed:
  perl-DBD-MySQL.x86_64 0:3.0007-2.el5                                                                               

Complete!

再执行,OK啦!

附:在另一台执行./mysqlreport,同时出了两个错误提示:
./mysqlreport
引用
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "zh_CN.GB2312;zh_CN.UTF-8;en_US;en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Can't locate DBI.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /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.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /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 /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at ./mysqlreport line 24.
BEGIN failed--compilation aborted at ./mysqlreport line 24.

你可能感兴趣的:(mysql,linux,shell,监控工具)