zoukankan      html  css  js  c++  java
  • MySQL--批量KILL连接

    方式一:使用SELECT INTO+SOURCE方式

    使用SELECT INTO OUTFILE方式获取到要删除的连接ID并保存为文件,在通过SOURCE执行

    ## 查看kill_id文件是否存在
    system cat /tmp/kill_id.sql
    
    ## 如果文件存在,则先删除
    system sudo rm -rf /tmp/kill_id.sql
    
    
    ## 将所有sleep的回话拼成KILL 脚本导入到文件
    SELECT CONCAT('kill ',ID,';')
    FROM `information_schema`.`PROCESSLIST` t 
    WHERE t.`COMMAND` IN ('Sleep')
    AND t.`TIME`>2
    AND t.`USER` IN ('XXX')
    INTO OUTFILE '/tmp/kill_id.sql';
    
    ## 使用source来执行文件
    source /tmp/kill_id.sql
    
    
    ## 如果文件存在,则先删除
    system sudo rm -rf /tmp/kill_id.sql
    
    ## 查看当前进程
    SHOW FULL PROCESSLIST;

     

    MySQL参数secure_file_priv会限制LOAD DATASELECT …OUTFILELOAD_FILE()等命令使用文件的目录

    1、如果secure_file_priv为NULL,则不允许导出和导入

    2、如果secure_file_priv为特定目录,则只能操作该目录下的问题件

    3、如果secure_file_priv为空时,则运行对所有目录进行导入导出。

    全局参数secure_file_priv时只读参数,无法使用SET GLOBAL进行修改,只能在配置文件中设置并重启生效。

    方式二:使用GROUP_CONCAT

    使用GROUP_CONCAT获取KILL脚本,在复制脚本执行

    SET SESSION group_concat_max_len=102400;
    
    SELECT GROUP_CONCAT(CONCAT('kill ',id,';') separator '')
    FROM `information_schema`.`PROCESSLIST` t 
    WHERE  t.`Time`>1
    AND t.`User` IN('devpadmin')
    AND t.`COMMAND` IN ('Sleep') G
  • 相关阅读:
    进程空间与系统空间(一)
    内核之最
    Linux 内核3.10.5 专场
    device_create与device_register
    重写与重载的含义
    抽象类和接口的区别
    Spring知识点
    mybatis学习
    知识点
    Mybatis面试题
  • 原文地址:https://www.cnblogs.com/gaogao67/p/10465542.html
Copyright © 2011-2022 走看看