Al administrar servidores de bases de datos Linux, el cierre inesperado del servicio mysqld puede causar inconvenientes considerables. En este tutorial, verá cómo automatizar el inicio de MySQL si se detiene por diversos motivos utilizando un script y crontab.
Por razones poco claras, el demonio mysqld puede detenerse repentinamente y no reiniciarse automáticamente en determinadas situaciones o momentos. Dado que los archivos de registro del servidor no brindan información útil al respecto, busqué una solución para monitorear el estado del servicio mysqld. Así, en el caso de que no esté activo, se deberá iniciar el reinicio automático mediante un cronjob.
Veamos el tutorial paso a paso para solucionar este problema. (Probado en Linux Debian 12)
Cómo automatizar el inicio de MySQL si se detiene
El primer paso es crear el script que reiniciará el servicio mysqld si se detiene.
1. Abra un editor de texto (como nano
o vi
) y copie el siguiente script en un archivo nuevo. Por ejemplo, puedes utilizar:
nano /path/to/your/script.sh
Copia el guión:
#!/bin/bash
if systemctl is-active mysqld > /dev/null; then
echo "The mysqld service is running."
else
echo "The mysqld service is not running. Restarting..."
systemctl start mysqld
fi
Guarde y cierre el editor de texto.
2. Otorgue derechos de ejecución al script para asegurarse de que se pueda ejecutar:
chmod +x /path/to/your/script.sh
3. Agregue el siguiente script al crontab (dominio: crontab -e
le permite editar):
*/3 * * * * /path/to/your/script.sh
La línea anterior especifica que el script se ejecutará cada 3 minutos. símbolo */3
significa "cada 3 minutos". Básicamente, con esta línea automatizas el inicio de MySQL con script.sh
.
4. Guarde y cierre el archivo. crontab.
Ahora, tu guión script.sh
se ejecutará automáticamente cada 3 minutos para verificar el estado del servicio mysqld
y reinícielo si es necesario.
Si algo sale mal y necesita ayuda, estaremos encantados de responder a sus comentarios.