Cuando administra servidores Linux con bases de datos, detener el servicio mysqld por diversas razones no es un incidente muy agradable. En este tutorial, aprenderá cómo iniciar MySQL automáticamente si se detiene por algún motivo utilizando un script y crontab.
contenido
Por alguna razón desconocida, en determinados momentos el demonio mysqld se detiene repentinamente sin reiniciarse automáticamente. Como los registros del servidor no me ayudaron mucho, busqué una solución para comprobar el funcionamiento del servicio mysqld y, si no está activo, iniciarlo mediante un crontab.
¿Cómo iniciar MySQL automáticamente si se detiene? [Linux]
En servidores MySQL con MadiaDB, el servicio mysqld normalmente debería reiniciarse automáticamente cuando se detiene por diversos motivos. Si esto no sucede, el siguiente script verificará periódicamente si el demonio mysqld se está ejecutando y ayudará a iniciar MySQL automáticamente si se detiene.
Mi prueba se realizó en el sistema operativo. Debian 12, MariaDB 10.11.4.
1. Abra la consola y cree el archivo para el futuro script que iniciará el servicio mysqld si se detiene.
prefiero usar el editor “nano“.
sudo nano /usr/local/bin/autostart_mysql.sh
2. En el nuevo archivo “autostart_mysql.sh” Copie el siguiente script:
#!/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
3. Guarde el nuevo archivo “autostart_mysql.sh“, luego configure los permisos de ejecución.
chmod +x /usr/local/bin/autostart_mysql.sh
4. Navega a “/usr/local/bin/” y pruebe el script ejecutando el comando: “./autostart_mysql.sh“.
![¿Cómo iniciar MySQL automáticamente si se detiene? [Linux]](https://stealthsettings.com/wp-content/uploads/2023/11/Autostart-mysql-service.webp)
En este momento, el guión desde el que estás empezando Mysql automáticamente solo se ejecutará cuando se ejecute manualmente. Agregado al crontab, se ejecutará periódicamente, en un intervalo de tiempo establecido por nosotros. elegí el guión “autostart_mysql.sh” ejecutarse cada 3 minutos.
¿Cómo se agrega un script al contador?
Para agregar un script al crontab para que se ejecute periódicamente, en un intervalo de tiempo establecido por usted, ejecute el comando: crontab -e, luego agregue la línea de comando al final del archivo.
*/3 * * * * /usr/local/bin/autostart_mysql.sh
*/3 especifica que el script se ejecutará cada 3 minutos.
Guarde el crontab y salga del editor.
Después de este paso, verifique el servicio. mysqld se hará cada 3 minutos, y si se detiene el servicio, se iniciará automáticamente.
Si necesita ayuda u otras aclaraciones, estaremos encantados de atender sus comentarios.