Lorsque vous gérez des serveurs Linux avec des bases de données, l'arrêt inattendu du service mysqld pour diverses raisons n'est pas une situation agréable. Dans ce tutoriel, vous apprendrez comment démarrer automatiquement MySQL si celui-ci s'arrête pour quelque raison que ce soit, en utilisant un script et le crontab.
Pour des raisons inconnues, le démon mysqld s'arrête parfois brusquement sans redémarrer automatiquement à certaines heures. Comme les journaux du serveur ne m'ont pas beaucoup aidé, j'ai cherché une solution pour vérifier si le service mysqld est en cours d'exécution, et dans le cas où il ne l'est pas, le démarrer à l'aide d'un crontab.
Sommaire
Comment démarrer automatiquement MySQL s'il s'arrête? [Linux]
Sur les serveurs MySQL avec MariaDB, normalement le service mysqld devrait redémarrer automatiquement lorsqu'il s'arrête pour diverses raisons. Si cela ne se produit pas, le script ci-dessous vérifiera périodiquement si le démon mysqld est en cours d'exécution et vous aidera à démarrer automatiquement MySQL s'il est arrêté.
Mon test est fait sur OS Debian 12, MariaDB 10.11.4.
1. Ouvrez la console et créez le fichier du futur script qui démarrera le service mysqld s'il est arrêté.
Je préfère utiliser l'éditeur "nano
" .
sudo nano /usr/local/bin/autostart_mysql.sh
2. Dans le nouveau fichier «autostart_mysql.sh
» copiez le script ci-dessous :
#!/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. Enregistrez le nouveau fichier "autostart_mysql.sh
", puis définissez les autorisations d'exécution.
chmod +x /usr/local/bin/autostart_mysql.sh
4. Accédez à «/usr/local/bin/
» et testez le script par commande : «./autostart_mysql.sh
" .
À l'heure actuelle, le script à partir duquel vous démarrez MySQL automatiquement ne s'exécutera que lorsqu'il sera exécuté manuellement. Ajouté à la crontab, il s'exécutera périodiquement, à un intervalle de temps fixé par nos soins. J'ai choisi que le script "autostart_mysql.sh
» à exécuter toutes les 3 minutes.
Comment ajouter un script au crontab?
Pour ajouter un script à la crontab afin qu'il s'exécute périodiquement, à un intervalle de temps défini par vous, exécutez la commande : crontab -e
, puis ajoutez la ligne de commande à la fin du fichier.
*/3 * * * * /usr/local/bin/autostart_mysql.sh
*/3
précise que le script sera exécuté toutes les 3 minutes.
Enregistrez la crontab et quittez l'éditeur.
Après cette étape, vérifiez le service mysqld
cela se fera toutes les 3 minutes, et si le service est arrêté, il démarrera automatiquement.
Si vous avez besoin d'aide ou d'autres précisions, nous serons heureux de répondre à vos commentaires.