Car*_*osH 27 mysql login logging
我们的 MySQL 生产服务器中不时有失败的登录尝试(MySQL 仪表板提醒我们)。有没有办法在不启用的情况下记录每次成功和失败的 MySQL 服务器登录general_log?
我们认为general_log这不是一个选项,因为它是一个高负载的生产服务器。
小智 21
只是为了通知好奇的人:挖掘您的错误日志并快速!
(1). 编辑 my.cnf(此处可找到设置文档)
[mysqld]
:#输入错误日志文件的名称。否则将使用默认名称。
log_error = /var/log/mysql/error
:#defaults 为 1。如果该值 > 1,则新连接尝试的中止连接和拒绝访问错误将写入错误日志
log_warnings = 2
...
(2). 在命令运行
$ sudo cat /var/log/mysql/error.err | egrep '[aA] 拒绝访问'
(3). 你有它!
(4). 如果您需要限制用户(dos 攻击或多用户数据库中的 mysql 用户密码恢复尝试),则(http://dev.mysql.com/doc/refman/5.5/en/user-resources.html)
mysql> GRANT USAGE ON * 。* TO 'attacker'@'localhost' WITH MAX_CONNECTIONS_PER_HOUR 100;
限制为每小时仅 100 次密码恢复尝试。
嗨,我认为这是不可能的。
从 mysql 5.1.29 开始 - 您可以指定存储选项(表或文件)和位置以及您想要的日志 - 错误、一般、二进制或慢速查询。据我所知 - 您无法指定日志的格式或记录的内容。我可能是错的 - 但我认为所有登录尝试都将记录在常规日志中,而不是错误日志中。
然而,假设你的 mysql 服务器运行在与你的应用程序服务器不同的机器上,并且你需要打开端口 3306 (或其他端口)并且你不能使用 ssh 隧道,你的 mysql 服务器仍然不应该被任何人随意访问 -无论如何。我强烈建议不要将其暴露给网络流量,如果您必须(例如位于防火墙后面的某个地方),请将其绑定到您的应用程序服务器的 IP 地址或 IP 块以及您的管理访问 IP(您所在的位置)访问自)
希望有帮助。
| 归档时间: |
|
| 查看次数: |
80337 次 |
| 最近记录: |