import pymysql import time # 连接MySQL数据库 conn = pymysql.connect(host='localhost', user='root', password='root', database='java') # 获取进程列表 def get_process_list(): cursor = conn.cursor() cursor.execute('SHOW FULL PROCESSLIST') result = cursor.fetchall() process_list = [] for row in result: process = { 'id': row[0], 'user': row[1], 'host': row[2], 'db': row[3], 'command': row[4], 'time': row[5], 'state': row[6], 'info': row[7] } process_list.append(process) return process_list # 实时监控 while True: process_list = get_process_list() for process in process_list: if process['command'] == 'Query' and process['state'] == 'executing': print('执行SQL语句:', process['info'], '开始时间:', time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(process['time']))) # 间隔1秒 time.sleep(1) # 关闭数据库连接 conn.close()这个代码跑起来 我再其它地方执行sql语句这里也没有输出
时间: 2024-03-15 20:43:47 浏览: 21
这段代码是一个实时监控MySQL数据库中正在执行的SQL语句的程序。它通过连接MySQL数据库,获取进程列表,判断进程的命令和状态,如果正在执行的是SQL语句,则输出相关信息。如果你在其他地方执行SQL语句,但这里没有输出,可能是因为你的SQL语句执行得太快了,没有被监控到。你可以尝试在执行SQL语句时加上一些sleep等待时间,看看是否能被监控到。或者你可以尝试修改代码,打印出所有进程的信息,看看是否有其他问题。
相关问题
conn = pymysql.connect
这是Python中使用pymysql库连接MySQL数据库的代码。你可以先安装pymysql库,然后在代码中使用以下语句连接数据库:
```python
import pymysql
# 建立数据库连接
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='password', db='database_name', charset='utf8')
# 关闭数据库连接
conn.close()
```
其中,`host`指定数据库主机地址,`port`指定数据库端口号,`user`和`passwd`指定连接数据库的用户名和密码,`db`指定要连接的数据库名称,`charset`指定字符编码。你需要根据实际情况进行修改。
import pymysql class MysqlDBUtil(): # 字典输出 def __init__(self, host, user, password, database, charset): # host = "localhost" # 指定访问的服务器,本地服务器指定“localhost”,远程服务器指定服务器ip地址 # port = 3306 # 指定端口号,范围在0-65535 # user = "root" # 用户名 # password = "123456" # 密码 # database = "sys" # 数据库的名字 # charset = "utf8" # 数据库的编码方式 # 建立连接 self.connect = pymysql.Connect(host=host, port=3306, user=user, passwd=password, db=database, charset=charset) # 数据库的查询 def query(self , sql): cursor = None res = None try: cursor = self.connect.cursor() cursor.execute(sql) res = cursor.fetchall() except Exception as e: print(str(e)) finally: cursor.close() return res # 数据库的增删改 def uid(self , sql): cursor = None try: cursor = self.connect.cursor() cursor.execute(sql) self.connect.commit() except Exception as e: print(str(e)) self.connect.rollback() finally: cursor.close() #数据库的关闭 def sql_close(self): self.connect.close() import pytest import allure import logging from utils.mysql_database_connection_utils import MysqlDBUtil import utils.mysql_database_connection_utils class TestChaxun(): def mysql_connect(self): self.conn = MysqlDBUtil("localhost", "root", "123456", "sys", "utf8") def teardown_class(self): self.conn.sql_close() def test1(self): data = self.conn.query("SELECT * from stu WHERE name = '张三' ") print(data)
这段代码中的问题可能是在TestChaxun类中的mysql_connect方法中,没有使用self关键字来定义conn属性。应该将mysql_connect方法中的 "self.conn" 更改为 "self.db",因为在类的初始化方法中已经定义了 "self.connect"。修改后的代码如下:
```
class TestChaxun():
def mysql_connect(self):
self.db = MysqlDBUtil("localhost", "root", "123456", "sys", "utf8")
def teardown_class(self):
self.db.sql_close()
def test1(self):
data = self.db.query("SELECT * from stu WHERE name = '张三' ")
print(data)
```
另外,你需要确保在运行测试之前已经安装了pytest和allure模块,并且将utils.mysql_database_connection_utils模块添加到PYTHONPATH中,以便测试代码能够正确地导入MysqlDBUtil类。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)