欢迎光临
我们一直在努力

Python查询MySQL慢日志

1.1、安装依赖pymysql
cd /usr/local/src/
wget https://files.pythonhosted.org/packages/44/39/6bcb83cae0095a31b6be4511707fdf2009d3e29903a55a0494d3a9a2fac0/PyMySQL-0.8.1.tar.gz
tar xf PyMySQL-0.8.1.tar.gz
cd PyMySQL-0.8.1
python setup.py install
查看pymysql是否安装成功:
python

import pymysql
pymysql.VERSION
(0, 8, 1, None)
exit()

看到版本信息即为安装完成!
1.2、安装依赖MysqlDb
cd /usr/local/src/
wget https://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz/download
tar xf download
cd MySQL-python-1.2.3
python setup.py build
python setup.py install

1.3、Python脚本
more /opt/shell/templates/mysql_slowlog.py
#!/usr/bin/python
import sys
import MySQLdb
import time
import datetime
import MySQLdb.cursors
mysql_ip = sys.argv[1]
mysql_user = sys.argv[2]
mysql_password = sys.argv[3]
query_time = "00:0" + sys.argv[4] + ":00"
start_time = sys.argv[5] + " 00:00:00"
end_time = sys.argv[5] + " 23:59:59"

db = MySQLdb.connect(host=mysql_ip, user=mysql_user, passwd=mysql_password, db="mysql", port=3306)
cur = db.cursor()
query = "select t.start_time,t.query_time,t.user_host,t.rows_sent,t.rows_examined,t.sql_text from mysql.slow_log t where t.start_time>=’%s’ and t.start_time<‘%s’ and t.query_time >=’%s’" %(start_time,end_time,query_time)
cur.execute(query)
r = cur.fetchall()
for a in r:
start_time =a[0]
query_time = a[1]
user_host = a[2]
rows_sent = a[3]
rows_examinetd = a[4]
sql_text =a[5]
print "\n"
print "%s\t%s\t%s\t%d\t%d\t%s" %(start_time,query_time,user_host,rows_sent,rows_examinetd,sql_text)
db.close()
1.3.1、执行Python脚本:IP 用户 密码 超过2秒 查询的时间
python /opt/shell/templates/mysql_slowlog.py 10.0.0.12 root 7$JlI@cgZc5$rW7N 2 2019-12-119

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。