【问题标题】:mysql processes still alive from processlistmysql进程从进程列表中仍然存在
【发布时间】:2016-02-07 08:27:10
【问题描述】:

我的 my.cnf 中有这个

wait_timeout=1800
interactive_timeout=1800;
net_read_timeout=1800;
net_write_timeout=1800

但是当我执行时

show processlist;

即使处于“睡眠”命令中,我的进程仍运行超过 4500 秒。

请帮忙解决一下,谢谢。

【问题讨论】:

  • 你有没有重启你的mysql服务器有这些变量wait_timeout=1800 interactive_timeout=1800; net_read_timeout=1800; net_write_timeout=1800
  • 是的,我做到了。如果执行 show variables like '%timeout%',它将显示我输入的设置。

标签: mysql process timeout


【解决方案1】:

PROCESSLIST 是否在“时间”列中显示 4500?还是您从其他地方得到的那个号码?

进程有什么特殊的吗,比如复制线程?

进程是否执行SET SESSION wait_timeout=... 以避免超时?从外部,您无法检测到是否发生了这种情况。

【讨论】:

  • 是的,4500 来自时间列,每秒递增 1。
  • 是的,4500 来自时间列,每秒递增 1,并且该过程不是复制。该进程是由 Windows 应用程序创建的,在执行完查询后它就呆在那里,我没有设置 SESSION wait_timeout。我唯一的提示是线程进程在连接池中,但应用程序已经闲置了很长时间。所以mysql应该杀死这个进程。请帮助我,谢谢。
  • 嗯...我不知道“mysql_ping”是否会在不重置时间的情况下保持清醒。 “kill”(来自mysql内部)会起作用。但它会造成麻烦吗?如果PROCESSLIST 中充满了未死的max_connections 进程,那就是个问题——新连接将被拒绝。
  • 哦,我在执行查询之前使用“mysql_ping”,我会尝试删除它
  • 我尝试删除“mysql_ping”,但仍然无济于事。有更多建议,请。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多