Python查询MySQL慢日志

  • 来源:网络
  • 更新日期:2020-06-28

摘要:系统运维 1.1、安装依赖pymysqlcd /usr/local/src/wget https://files.pythonhosted.org/packages/44/39/6bcb83cae0095a31b6be4511707fd

系统运维

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

新网虚拟主机