Cerrar todas las conexiones de un usuario en MySQL

Algunas veces nos encontramos con un usuario en MySQL que esta usando muchas conexiones, más de 20,  y estas estan en estado Sleep. Podríamos copiar cada numero de proceso y agregarle el comando KILL pero esto nos llevaria un poco de tiempo. Entonces nos preguntamos ¿ como hacemos para cerrar todas las conexiones de un usuario en MySQL ? Gracias a la introduccion del information_schema podemos hacer una busqueda y sacar todos los procesos de un mismo usuario. Veamos el siguiente cuadro. mysql> select concat('KILL ',id,';') from information_schema.processlist where user='root'; +------------------------+ | concat('KILL ',id,';') | +------------------------+ | KILL 3101; | | KILL 2946; | +------------------------+ 2 rows in set (0.00 sec) Como vemos este comando nos va a dar el listado de todas conexiones pero ahora tenemos el problema que no podemos hacer copiado y pegado para ejecutar estos comandos. Para resolver el problema vamos a enviar los resultados a un archivo de texto el cual posteriomente ejecutaremos de un solo. mysql> select concat('KILL ',id,';') from information_schema.processlist where user='root' into outfile '/tmp/a.txt'; Query OK, 2 rows affected (0.00 sec)   mysql> source /tmp/a.txt; Query OK, 0 rows affected (0.00 sec) Con este mismo procedimiento podríamos resolver muchas situaciones en las que ocupamos ejecutar muchas sentencias sin necesidad de preparalas en un editor de...

read more