python监控mysql脚本
时间: 2023-05-17 13:07:53 浏览: 110
可以使用 Python 的 MySQLdb 模块来连接 MySQL 数据库,并使用该模块提供的函数来执行查询和更新操作。以下是一个简单的 Python 脚本,用于监控 MySQL 数据库中的表:
```python
import MySQLdb
import time
# 连接 MySQL 数据库
db = MySQLdb.connect(host="localhost", user="root", passwd="password", db="database")
# 创建游标对象
cursor = db.cursor()
# 监控表的名称
table_name = "my_table"
while True:
# 查询表中的数据
cursor.execute("SELECT COUNT(*) FROM %s" % table_name)
result = cursor.fetchone()
# 输出查询结果
print("Table %s has %d rows" % (table_name, result[0]))
# 等待一段时间
time.sleep(60)
# 关闭游标和数据库连接
cursor.close()
db.close()
```
这个脚本会每隔一分钟查询一次指定的表,并输出表中的行数。你可以根据需要修改查询语句和等待时间。
相关问题
python监控mysql
可以使用Python中的第三方库`pymysql`和`watchdog`来实现对MySQL数据库的监控。
安装pymysql库:
```python
pip install pymysql
```
安装watchdog库:
```python
pip install watchdog
```
然后可以编写一个Python脚本,实现对MySQL数据库的监控。以下是一个简单的示例:
```python
import pymysql
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
# 数据库连接信息
host = 'localhost'
port = 3306
user = 'root'
password = 'password'
database = 'test'
# 监控文件夹路径
path = '/data/mysql/'
# MySQL查询语句
query = 'SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = "{}"'
# 获取MySQL数据库表数量
def get_table_count():
conn = pymysql.connect(host=host, port=port, user=user, password=password, database=database)
cursor = conn.cursor()
cursor.execute(query.format(database))
result = cursor.fetchone()
conn.close()
return result[0]
# 监控文件夹变化事件处理类
class DBFileEventHandler(FileSystemEventHandler):
def on_modified(self, event):
table_count = get_table_count()
print('Table count:', table_count)
# 启动监控
if __name__ == "__main__":
event_handler = DBFileEventHandler()
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
```
该脚本将会监控MySQL数据库的表数量变化。当MySQL数据库中的表数量发生变化时,脚本将会输出当前的表数量。
在该脚本中,我们使用了`pymysql`库来连接MySQL数据库并执行查询语句。我们还使用了`watchdog`库来监控指定文件夹中的文件变化。在文件夹中的文件变化事件发生时,我们会重新查询MySQL数据库中的表数量,并输出表数量的变化情况。
zabbix 监控mysql Python脚本
可以使用 Zabbix 自带的 MySQL 监控模板,但是如果需要更详细的监控,可以使用 Python 脚本来实现。以下是一个简单的 Python 脚本,可以监控 MySQL 的状态:
```python
#!/usr/bin/env python
import subprocess
import re
# MySQL 连接信息
host = 'localhost'
port = '3306'
user = 'root'
password = 'password'
# 执行 MySQL 命令
command = "mysqladmin -h " + host + " -P " + port + " -u " + user + " -p" + password + " extended-status"
output = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE).communicate()[0]
# 匹配状态信息
result = re.findall(b"Threads_connected: (\d+)", output)
# 输出监控数据
print(result[0].decode('utf-8'))
```
这个脚本使用 `mysqladmin` 命令获取 MySQL 的状态信息,然后使用正则表达式匹配出 `Threads_connected` 的值。这个值表示当前连接到 MySQL 的线程数。可以将这个脚本放到 Zabbix 的 agent 目录中,然后在 Zabbix 中配置一个自定义监控项来调用这个脚本。
阅读全文