开启日志记录、分析登录行为并设置告警机制是监控MySQL异常登录的关键。通过启用通用查询日志和错误日志,可记录所有连接尝试并识别频繁失败的IP或非法访问;结合performance_schema与information_schema可实时查看连接来源,发现非信任IP或非常用账户登录;利用脚本定期分析日志中“Access denied”条目,统计单位时间失败次数,超过阈值自动通知管理员;建议将脚本加入crontab实现每分钟检测,并可集成ELK或Prometheus+Grafana实现可视化告警;及时响应异常登录能有效防范暴力破解等安全风险。

在 MySQL 中监控异常登录,关键在于开启日志记录、分析登录行为,并设置告警机制。通过合理配置,可以及时发现暴力破解、非法访问等安全风险。
MySQL 的通用查询日志(General Query Log)会记录所有连接和执行的语句,适合用于审计登录活动。
-- 开启通用日志(需修改配置文件 my.cnf 或 my.ini)重启服务后,所有连接尝试(包括成功和失败)都会被记录。定期检查该日志,关注频繁失败的 IP 或不存在的用户尝试。
MySQL 错误日志默认记录部分认证失败信息,尤其是高频率的错误可能提示暴力破解。
查看错误日志路径:
SHOW VARIABLES LIKE 'log_error';
在日志中搜索关键字如 "Access denied",例如:
[Warning] Access denied for user 'root'@'192.168.1.100' (using password: YES)可通过脚本定期扫描此类条目,统计单位时间内的失败次数,超出阈值则触发通知。
MySQL 的 performance_schema 提供了对当前和历史连接的详细视图。
启用连接记录:
如果您是新用户,请直接将本程序的所有文件上传在任一文件夹下,Rewrite 目录下放置了伪静态规则和筛选器,可将规则添加进IIS,即可正常使用,不用进行任何设置;(可修改图片等)默认的管理员用户名、密码和验证码都是:yeesen系统默认关闭,请上传后登陆后台点击“核心管理”里操作如下:进入“配置管理”中的&ld
0
UPDATE performance_schema.setup_consumers SET ENABLED = 'YES' WHERE NAME = 'events_statements_history_long';
查询最近的连接情况:
SELECT USER, HOST, ID FROM performance_schema.threads WHERE TYPE = 'FOREGROUND';
结合 information_schema.processlist 也可实时查看活跃连接:
SELECT * FROM information_schema.processlist WHERE COMMAND != 'Sleep';
重点关注非信任 IP 或非常用账户的登录。
手动检查日志效率低,建议编写脚本自动分析。
示例思路(Shell 脚本片段):
grep "Access denied" /var/log/mysql/error.log | grep "$(date +%Y-%m-%d)" | awk '{print $NF}' | sort | uniq -c | awk '$1 > 5 {print "Suspicious IP:", $2}'将脚本加入 crontab 每分钟运行一次,发现异常时通过邮件或短信通知管理员。
更高级方案可接入 ELK、Prometheus + Grafana 等系统,实现可视化监控和实时告警。
基本上就这些。关键是开启日志、定期分析、及时响应。安全无小事,异常登录往往是攻击的第一步。不复杂但容易忽略。
以上就是如何在mysql中监控异常登录的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号