经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MySQL » 查看文章
MySQL连接参数max_connect_errors
来源:cnblogs  作者:小有志气  时间:2021/2/18 15:26:50  对本文有异议

相关参数:

  1. mysql> show variables like '%max_connect_errors%';
  2. +--------------------+-------+
  3. | Variable_name | Value |
  4. +--------------------+-------+
  5. | max_connect_errors | 3 |
  6. +--------------------+-------+
  7. 1 row in set (0.00 sec)

如果一台主机连续请求MySQL,而这些请求由于网络延迟都没有成功建立连接就被中断了,当这些连续的请求累计值大于该参数时,MySQL服务器就会阻止这台主机后续的所有请求。

  1. mysql> show variables like '%connect_timeout%';
  2. +-----------------+-------+
  3. | Variable_name | Value |
  4. +-----------------+-------+
  5. | connect_timeout | 10 |
  6. +-----------------+-------+
  7. 1 row in set (0.00 sec)

客户端与MySQL建立连接需要三次握手,正常情况下时间很短,但是网络波动会导致延迟,就会导致这个握手协议无法完成,如果超过该参数(默认10秒)还没有完成3次握手,则客户端会收到Lost connection to MySQL server at 'XXX', system error: errno错误,并且累计错误连接数。

  1. mysql> desc performance_schema.host_cache;
  2. +--------------------------------------------+------------------+------+-
  3. | Field | Type | Null |
  4. +--------------------------------------------+------------------+------+-
  5. | IP | varchar(64) | NO |
  6. | HOST | varchar(255) | YES |
  7. | HOST_VALIDATED | enum('YES','NO') | NO |
  8. | SUM_CONNECT_ERRORS | bigint(20) | NO |
  9. | COUNT_HOST_BLOCKED_ERRORS | bigint(20) | NO |
  10. | COUNT_NAMEINFO_TRANSIENT_ERRORS | bigint(20) | NO |
  11. | COUNT_NAMEINFO_PERMANENT_ERRORS | bigint(20) | NO |
  12. | COUNT_FORMAT_ERRORS | bigint(20) | NO |
  13. | COUNT_ADDRINFO_TRANSIENT_ERRORS | bigint(20) | NO |
  14. | COUNT_ADDRINFO_PERMANENT_ERRORS | bigint(20) | NO |
  15. | COUNT_FCRDNS_ERRORS | bigint(20) | NO |
  16. | COUNT_HOST_ACL_ERRORS | bigint(20) | NO |
  17. | COUNT_NO_AUTH_PLUGIN_ERRORS | bigint(20) | NO |
  18. | COUNT_AUTH_PLUGIN_ERRORS | bigint(20) | NO |
  19. | COUNT_HANDSHAKE_ERRORS | bigint(20) | NO |
  20. | COUNT_PROXY_USER_ERRORS | bigint(20) | NO |
  21. | COUNT_PROXY_USER_ACL_ERRORS | bigint(20) | NO |
  22. | COUNT_AUTHENTICATION_ERRORS | bigint(20) | NO |
  23. | COUNT_SSL_ERRORS | bigint(20) | NO |
  24. | COUNT_MAX_USER_CONNECTIONS_ERRORS | bigint(20) | NO |
  25. | COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS | bigint(20) | NO |
  26. | COUNT_DEFAULT_DATABASE_ERRORS | bigint(20) | NO |
  27. | COUNT_INIT_CONNECT_ERRORS | bigint(20) | NO |
  28. | COUNT_LOCAL_ERRORS | bigint(20) | NO |
  29. | COUNT_UNKNOWN_ERRORS | bigint(20) | NO |
  30. | FIRST_SEEN | timestamp | NO |
  31. | LAST_SEEN | timestamp | NO |
  32. | FIRST_ERROR_SEEN | timestamp | YES |
  33. | LAST_ERROR_SEEN | timestamp | YES |
  34. +--------------------------------------------+------------------+------+

每次连接超时失败会在SUM_CONNECT_ERRORS和COUNT_HANDSHAKE_ERRORS字段累计,当累计到max_connect_errors时就会收到is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts错误。

解决:

根本的解决方法还是需要解决网络波动问题;临时解决可以通过调整max_connect_errors参数来解决,但是如果一个高负载的系统再业务高峰期是可能error很快回累计到很大的值。

原文链接:http://www.cnblogs.com/xiaoyouzhiqi/p/14345563.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号