是否可以在 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/