GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo encontrar y terminar/matar el proceso de MySQL

Introducción

Los procesos de MySQL innecesarios pueden causar problemas de rendimiento en su sistema. Con el tiempo, los subprocesos activos se acumulan y bloquean su servidor, lo que impide que los usuarios accedan a las tablas y ejecuten solicitudes.

Cuando el uso de recursos es extremadamente alto, es posible que deba eliminar los procesos de MySQL. Esta guía le mostrará cómo identificar procesos de MySQL y eliminar un proceso.

Requisitos previos

  • Acceso a una línea de comando/ventana de terminal
  • MySQL o MariaDB instalado
  • Usuario con sudo o raíz privilegios

Cómo encontrar la lista de procesos de MySQL

Antes de que pueda ubicar un proceso y eliminarlo, debe acceder a un servidor MySQL local o remoto. Para iniciar sesión en su cuenta local de MySQL como root, abra la terminal e ingrese:

mysql -u root -p

Escriba la contraseña cuando se le solicite. Cuando se carga el shell de MySQL, el indicador muestra mysql> .

Para ubicar un proceso para matar o terminar, cargue la lista con todas las sesiones activas.
En MySQL shell, use esta consulta:

SHOW PROCESSLIST;

La salida muestra la siguiente información:

Es posible que tenga más entradas en su lista. Tenga en cuenta el Id del proceso que desea eliminar. El Time columna le ayuda a determinar los procesos de ejecución más larga. Por lo general, esos son los que desea cancelar primero.

Cómo eliminar el proceso de MySQL

Para eliminar una sesión de MySQL de la lista, utilice KILL consulta seguida del hilo Id anotó anteriormente.

KILL 14;

El shell muestra el estado de la consulta y el número de filas afectadas:“Consulta correcta, 0 filas afectadas (0,06 segundos) . Esta consulta finaliza la conexión a la base de datos, incluidas todas las operaciones asociadas con la conexión.

Recuerde que un usuario debe tener los privilegios adecuados para poder eliminar un proceso.

Cómo eliminar todos los procesos de MySQL para un usuario específico

MySQL no tiene un comando único para eliminar todos los procesos.

Para eliminar todos los procesos de un usuario específico, use CONCAT para crear un archivo con la lista de hilos y sentencias. En nuestro caso, ingresamos raíz como el usuario. Para especificar otro usuario, reemplace raíz con el nombre de usuario deseado.

SELECT CONCAT('KILL ',id,';') FROM information_schema.processlist WHERE user='root' INTO OUTFILE '/tmp/process_list.txt';

Esta consulta creó un archivo llamado process_list.txt . Puedes editar el nombre a tu gusto. Abra el archivo y revise si esos son los procesos que desea eliminar. Cuando esté listo, ingrese:

SOURCE /tmp/process_list.txt;

Puede agregar condiciones a la consulta para reducir la lista de procesos en el archivo de salida. Por ejemplo, agregue time > 1000 al comando para incluir solo los procesos con el valor de tiempo superior a 1000.

SELECT CONCAT('KILL ',id,';') FROM information_schema.processlist WHERE user='root' and time>1000 INTO OUTFILE '/tmp/process_list.txt';

Cent OS
  1. Cómo matar un proceso zombie en Linux

  2. Cómo encontrar archivos de configuración de MySQL, PHP y Apache

  3. Cómo encontrar y matar el proceso Zombie en Linux

  4. ¿Qué son los procesos zombis y cómo encontrar y eliminar procesos zombis?

  5. ¿Cómo encontrar el ID de proceso (pid) de un programa de terminal en ejecución?

Cómo encontrar el ID de proceso de un programa y eliminarlo [Consejo rápido]

Cómo MATAR un proceso en Linux

Cómo matar o terminar un proceso de Linux:la guía definitiva

Cómo encontrar el PID y PPID de un proceso en Linux

Cómo matar procesos en Linux usando kill, killall y pkill

Cómo eliminar procesos de MySQL en phpMyAdmin