Mysql 设置 慢SQL时间,并触发邮件
1. 临时设置(会话级别)
SET SESSION long_query_time = 2; -- 设置慢查询时间为2秒
2. 全局设置
这样所有会话都会受到影响:
SET GLOBAL long_query_time = 2; -- 设置慢查询时间为2秒
3. 检查当前设置
SHOW VARIABLES LIKE 'long_query_time';
-- 或者
select @@long_query_time;
以上的问题,MySQL 服务重启后 失效。
4. 配置文件配置
为了确保设置在服务器重启后仍然有效,可以在 MySQL 配置文件(如 my.cnf 或 my.ini)中添加以下行:
[mysqld]
slow_query_log = 1
slow_query_log_file = /path/to/your/slow-query.log
long_query_time = 2 # 设置慢查询时间为2秒
log_queries_not_using_indexes = 1 # 可选:记录未使用索引的查询
5. 重启MySQL服务
保存配置文件并重启MySQL服务以使更改生效。
6. 编写Python 触发邮件代码
import time
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# 配置邮件发送信息
SMTP_SERVER = 'smtp.example.com'
SMTP_PORT = 587
SMTP_USER = 'your-email@example.com'
SMTP_PASSWORD = 'your-email-password'
FROM_EMAIL = 'your-email@example.com'
TO_EMAIL = 'recipient-email@example.com'