Guías Hosting Bases de datos Cerrar consultas MySQL en ejecución

Cerrar consultas MySQL en ejecución

Aunque no habitual, se pueden dar situaciones en las que una consulta SQL lleve más tiempo en completarse del que esperábamos, ya sea por funcionamiento problemático o por la propia complejidad de la misma.

Esto puede a su vez crear un efecto "cuello de botella", haciendo que el resto de consultas no puedan acceder a la tabla sobre la que actúa si es una acción que implica bloqueo de la misma durante la tarea.

Es por ello que puede ser útil saber que estas pueden ser cerradas de ser necesario.

Vía SSH o terminal integrada en cPanel

Como primer paso deberás conectar vía SSH a la cuenta, si tienes experiencia la conexión por medio de la terminal de instalada en tu equipo sería la solución ideal, en caso contrario la terminal integrada en cPanel sería una opción mucho más sencilla.

Una vez dentro nos conectamos con MySQL por medio del comando:

mysql -u usuario_mysql -p password

Donde usuario_mysql y password serían los datos de acceso de un usuario MySQL con permisos sobre la base de datos a la que queramos acceder.

Y ejecutamos la consulta que nos permite ver los procesos abiertos.

SHOW FULL PROCESSLIST;

Por medio de esta obtendremos una tabla con las consultas en ejecución y el tiempo que lleva abierta.

Tomamos el valor del campo ID de la que queremos cerrar y ejecutamos:

KILL IDENTIFICADOR;

Tras esto la consulta se forzaría a cerrar y ya no aparecería si ejecutamos de nuevo show full processlist.

Si en cambio se trata de varias y queremos cerrarlas todas de una vez, podemos ejecutar la siguiente consulta sustituyendo USUARIO_MYSQL por el usuario MySQL que está ejecutando dichas consultas abiertas.

SELECT GROUP_CONCAT(CONCAT('KILL QUERY ',id,';') SEPARATOR ' ') 
FROM information_schema.processlist 
WHERE USER = 'USUARIO_MYSQL';

Desde phpMyAdmin

Con el paso de los años phpMyAdmin se ha vuelto una herramienta cada vez más potente, en este caso podemos hacer uso de su interfaz para cerrar consultas en ejecución.

Accede a phpMyAdmin, selecciona la base de datos en cuestión y a continuación accede a la pestaña SQL.

Introducimos en la caja de consultas SQL:

SHOW FULL PROCESSLIST;

phpMyAdmin nos mostrará una tabla con los procesos abiertos y una opción al lado de cada consulta para cerrar de forma sencilla la tarea en ejecución.

¿Te pareció útil este artículo? Si No