抓包分析mysql 报错的数据包 (Aborted_connects)

监控发现mysql Aborted_connects数值一直增加,也就说mysql有拒绝连接请求的现象。从数据库层次来看,没有相关报警日志,
不知道是那个用户,那个ip连接数据被拒绝,但是我们可以通过分析数据包得到这些信息。先说一下mysql拒绝连接有几种情况
1)用户对访问的数据库没有权限。2)用户密码输错。3)数据包损坏。4)连接超时 超过了connect_timeout   

 1、 如果mysql一直有拒绝连接的现象直接抓包就可以了,对于偶尔有Aborted_connects现象就需要分析一下是否有规律,找到规律再抓包。
这个是分析规律的小程序。如果没规律的,可以一边用脚本观察Aborted_connects有增加时,就开始抓包。

  1. #!/bin/bash
  2. for i in `seq 10000`
  3. do
  4.         echo `date +”%Y-%m-%d %H:%M”` >> log1
  5.         /usr/local/mysql/bin/mysql -uroot -p’xxxx’ -e ‘show global status like “Aborted_connects”‘ >> log1
  6.         echo “” >> log1
  7.         sleep 1
  8. done

2、 抓包 -i 指定访问数据库走的网卡,port是数据库的端口,抓包数据会记录到snap.log中。
tcpdump -i eth1  port 3306  -w snap.log

3、分析数据包,
1) 用wireshark打开snap.log

2) CTRL+f搜索关键字Error,选择String。

3) 找到报错数据包以后,打开Mysql protocol 就可以找到,是那个用户,那个ip连接数据库被拒绝。

小结:抓包还可以分析出,sql语句写的不正确,例如字段名写错了,应用层的错误。

 

原文链接:http://blog.chinaunix.net/uid-25135004-id-3795330.html

0

评论

还没有任何评论,你来说两句吧

发表评论

京ICP备16055031-1号 意见反馈:webadmin@enunix.com