【问题标题】:mysql auto kill querymysql自动终止查询
【发布时间】:2011-06-24 18:07:40
【问题描述】:

mysql 是否可以自动杀死超过 20 秒的查询?

【问题讨论】:

  • 您的意思是中止正在运行的查询?像Ctrl c 这样的东西?还是您的意思是在 20 秒后编程自动中止?
  • 如果查询耗时超过 20 秒很危险是写操作,可能会导致表损坏
  • @ajreal:如果是这种情况,MySQL 应该修复这个错误。取消查询时,表永远不会损坏。 dbms 应该是可靠的,这就是你首先使用 dbms 的原因。
  • Setup MySQL query timeout的可能重复

标签: mysql


【解决方案1】:

我猜你正在寻找名为 mk-kill 的 maatkit 实用程序,它会杀死符合特定条件的查询。

【讨论】:

  • 我们需要为它安装什么吗????或者我们可以简单地执行命令,因为对我来说它说,找不到 mk-kill 命令
  • 该工具现在被称为pt-kill,来自 Percona。您将需要安装它。见percona.com/software/percona-toolkit
【解决方案2】:

可以编写一个程序来完成它。您的程序将使用 SHOW PROCESSLIST 来发现当前正在运行的查询以及它们已经运行了多长时间,然后发出 KILL 查询来终止查询。

【讨论】:

    【解决方案3】:

    安装 RubyGem mysql_manager (sudo gem install mysql_manager),然后将这样的命令添加到您的 crontab:

    mysql-manager --kill --kill:user api --kill:max-query-time 30 --log:level DEBUG
    

    如需更多选项,请运行mysql-manager --help

    您可能需要指定替代的 --db:dsn--db:username--db:password

    在此处了解更多信息:https://github.com/osterman/mysql_manager

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-02
      • 1970-01-01
      • 1970-01-01
      • 2012-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多