在对我们的应用程序进行性能测试期间,我发现在极端负载下可能出现的一个问题是偶尔出现 mysql 连接错误(即在这个阶段我认为将其称为错误是不公平的)。最终应用程序将被 mysql 阻止。我可以延长SET GLOBAL max_connect_errors=10000;
(目前为 10)但假设 100% 的 mysql 正常运行时间在很长一段时间内最终会再次出现这个问题吗?
这是 mysql 的“blocked-host”特性:
如果没有主动干预,连接错误计数是否会刷新或下降?
更新
我发现了相互矛盾的信息,Percona 推荐了一个非常高的限制(“大约 1000000 是好的”),这意味着没有。但是在文档的其他地方,只计算连续的错误,这意味着是的,一个成功的连接将刷新错误计数。
如果在没有成功连接的情况下从给定主机连续发生太多此类连接,则服务器会阻止来自该主机的进一步连接。max_connect_errors 系统变量确定发生阻塞之前允许的错误数
有没有人运行 mysql 5.6.5,其中 host_cache 暴露或明确知道?
是的,它们是连续的连接错误
不会。客户端主机将被阻止,直到您执行
mysqladmin flush-hosts
命令或重新启动 MySQL 服务器。