相关疑难解决方法(0)

客户端超时,而 MySQL 查询仍在运行?

我们遇到了一个问题,即通过 MySQL 工作台运行的只读查询从用户的 UI 角度超时,并在服务器上继续运行(显然消耗越来越多的资源),直到我们出现中断。

问题

  • 在 MySQL 中是否有处理此类问题的标准方法?
  • 是否存在我们需要避免的根本原因?

mysql query-timeout connectivity

9
推荐指数
1
解决办法
4万
查看次数

MySQL读取联合表时读取通信数据包超时

我有两台服务器(所罗门和宁静)。
两台服务器都是 Windows Server (2012 & 2016)、IIS、PHP (5.6.31)、MySQL (5.5)。

在所罗门上,我设置了几个联合表,指向宁静表。我在 solomon 上设置了一个用户,专门用于连接到这些联合表。

帐户分布在两台服务器上。我的用户帐户一半在 solomon 上,一半在 serenity 上。但是,所有用户的登录页面都很平静。这是为了让 serenity 服务器可以检查该用户应该被定向到哪个服务器,然后重定向到 solomon 或 serenity 上的密码页面。所以通过这种方式,所有用户都经历了宁静,但并非所有用户都留在那里。

但是,在 solomon 上运行的其他一些脚本确实会检查这些联合表,因此即使用户已经通过 solomon,该站点仍在查询这些联合表,从而达到了平静。

据我所知,这应该不是问题,但在平静中我在 mysqlerror.log 中收到很多警告,如下所示:(用户名、数据库名和 IP 地址被混淆)

180430 16:21:00 [Warning] Aborted connection 24784 to db: 'dbname_blah' user: 'federated_user_blah' host: 'xxx.xxx.xx.xx' (Got timeout reading communication packets)
Run Code Online (Sandbox Code Playgroud)

在所罗门我没有收到这些警告。此外,这些警告中有 95% 提到了联合用户,即使我 99% 的查询是使用不同的用户完成的。所以这就是为什么我怀疑这是联合表/用户的问题。

我不会太担心,除了我在宁静方面遇到了很多问题,我怀疑这可能与此有关。今天我的数据库崩溃了,我不得不重新启动服务器。很多愤怒的顾客。

其他症状

在过去的几个月里,我遇到了似乎是并发连接限制的问题,因为我有几个脚本循环遍历多行数据(通常在 50 到 200 之间)并使用 ajax 为每一行调用发送电子邮件脚本,或者在另一种情况下计算小时数。有时,这些循环脚本不会执行循环中的所有调用,而是会以 500 个错误结束,特别是当循环中有很多行(比如超过 100 行)时。较小的循环(如 50 条记录)通常没有问题。

然而,根据微软的说法,IIS 中不再有任何并发​​连接限制。

网站上的超时 有时并非我的所有 sql 语句都能够在页面加载时完成执行。他们只是超时并且不返回任何行。然后当我刷新页面时,它们通常会加载,但如果加载时间超过几秒钟,我知道会有一些语句超时。

MySQL Workbench 中的超时 如果我尝试 …

mysql

5
推荐指数
1
解决办法
3万
查看次数

标签 统计

mysql ×2

connectivity ×1

query-timeout ×1