一、原因和解决

原因:MySQL服务器由于检测到来自IP地址192.168.1.190的多次失败连接尝试,自动阻止了该主机的访问。这是MySQL的安全机制,用于防止暴力破解攻击。

造成的原因有:

1.​​频繁失败的连接尝试​​
•应用程序配置错误(错误的用户名/密码)
•连接池配置不当,导致大量连接尝试失败
•网络不稳定导致连接中断
2.​​达到max_connect_errors限制​​:
•MySQL默认会阻止连续10次(默认值)连接失败的客户端
•这是MySQL的安全机制,防止暴力破解攻击
3.​​应用程序问题​​:
•代码中没有正确处理连接失败的情况 ,有的程序,连不上就一直连,应该做个延时30秒或别的措施,有的网络不稳定,数据库一断开就频繁直接连。
•连接泄漏导致大量半开连接

解决方法:

登录服务器 执行 flush hosts

预防措施:

  • 检查应用程序的连接配置,确保使用正确的凭据

  • 验证应用程序与MySQL服务器之间的网络连接

  • 如有需要,可以在my.cnf配置文件中增加max_connect_errors值   max_connect_errors = 1000

    查看MySQL当前max_connect_errors

  • SHOW VARIABLES LIKE '%max_connect_errors';

    使用系统命令查看配置文件 

  • grep 'max_connect_errors' /etc/my.cnf

临时修改可以使用(重启后失效)

SET GLOBAL max_connect_errors=1000;

二、查看当前连接到MySQL的IP地址

1.使用MySQL命令查看所有连接

SHOW PROCESSLIST;

SELECT * FROM information_schema.processlist;

方法2:查看带有IP地址的连接信息

SELECT 
  id, 
  USER, 
  HOST, 
  db, 
  command, 
  time, 
  state, 
  info
FROM 
  information_schema.processlist
WHERE 
  HOST NOT LIKE 'localhost%';

法3:统计各IP的连接数

SELECT 
  SUBSTRING_INDEX(HOST, ':', 1) AS client_ip,
  COUNT(*) AS connection_count
FROM 
  information_schema.processlist
GROUP BY 
  client_ip
ORDER BY 
  connection_count DESC;

ok
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐