import mysql.connector from mysql.connector import Error import time MySQL数据库连接参数 db_config = { 'host': 'localhost', 'user': 'your_username', 'password': 'your_password', 'database': 'your_database' } 连接到MySQL数据库 def connect_to_db(config): try: connection = mysql.connector.connect(**config) if connection.is_connected(): return connection except Error as e: print("Error while connecting to MySQL", e) return None 获取MySQL数据库的基本信息 def get_db_info(connection): cursor = connection.cursor() try: # 获取当前连接数 cursor.execute("SHOW STATUS LIKE 'Threads_connected';") threads_connected = cursor.fetchone()[1] # 获取内存使用情况 cursor.execute("SHOW STATUS LIKE 'Max_used_connections';") max_used_connections = cursor.fetchone()[1] # 获取存储使用情况 cursor.execute("SHOW TABLE STATUS LIKE 'your_table';") storage_info = cursor.fetchone() table_name = storage_info[0] table_rows = storage_info[4] table_size = storage_info[5] return { 'threads_connected': threads_connected, 'max_used_connections': max_used_connections, 'table_name': table_name, 'table_rows': table_rows, 'table_size': table_size } except Error as e: print("Error fetching data from MySQL", e) return None 主函数 def main(): connection = connect_to_db(db_config) if connection: db_info = get_db_info(connection) if db_info: print("MySQL Database Information:") print("Current Threads Connected:", db_info['threads_connected']) print("Max Used Connections:", db_info['max_used_connections']) print("Table Name:", db_info['table_name']) print("Table Rows:", db_info['table_rows']) print("Table Size (MB):", db_info['table_size']) connection.close() else: print("Failed to connect to the database.") 运行监控脚本 if __name__ == "__main__": while True: main() time.sleep(60) # 每60秒检查一次
脚本说明:
1、数据库连接参数:在db_config
字典中填写你的MySQL数据库的连接信息,包括主机名、用户名、密码和数据库名。
2、连接数据库:connect_to_db
函数尝试连接到MySQL数据库,并返回连接对象。
3、获取数据库信息:get_db_info
函数执行SQL查询以获取数据库的连接数、最大使用连接数以及指定表的行数和大小。
4、主函数:main
函数负责调用上述函数,并打印出获取的数据库信息。
5、循环执行:脚本在无限循环中运行,每60秒检查一次数据库状态。
请根据你的实际需求调整脚本中的数据库连接参数和SQL查询。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1164567.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复