mysql - 如果需要太长时间,如何停止 MySQL 查询?

标签 mysql timeout

是否可以在 MySQL 中使查询超时?

也就是说,如果任何查询超过了我指定的时间,它就会被 MySQL 杀死,它会返回错误而不是等待永恒。

最佳答案

在 CPAN 上有一个很好的 Perl 脚本可以做到这一点: http://search.cpan.org/~rsoliv/mysql-genocide-0.03/mysql-genocide

只需安排它以适当的参数运行。创建一个 CRONtab 文件 /etc/cron.d/mysql_query_timeout 来安排它每分钟运行一次:

* * * * * root/path/to/mysql-genocide -t 7200 -s -K

其中 7200 是允许的最大执行时间(以秒为单位)。 -s 开关过滤掉除 SELECT 查询之外的所有查询。 -K 开关指示脚本终止匹配的进程。

root 用户应该能够在没有身份验证的情况下运行本地 mysql 工具,否则您需要在命令行上提供凭据。

关于mysql - 如果需要太长时间,如何停止 MySQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2137084/

相关文章:

mysql - 合并单个表上多个 select 语句的结果

mysql - 解释一下MySQL中这个表中的key_len

php - 简单的 mysqli_query SELECT 返回 false

javascript - jquery时间延迟

c# - 等到进程不再运行或超时已过,以先发生者为准

MySQL 外键引用

php - MySQL 的 InnoDB - 避免为单个事务刷新日志缓冲区?

ruby-on-rails - Heroku 间歇性 H15 'Idle connection' 上传操作错误

node.js - Redis 的 NodeJS 和 Redis 超时触发器

c# - Selenium Webdriver 等待元素点击?