Corriger l’erreur MySQL “Le serveur a quitté sans mettre à jour le fichier PID” sur le SDV AvaHost

L’erreur MySQL The server quit without updating PID file indique que le serveur MySQL n’a pas réussi à démarrer et n’a pas pu mettre à jour son fichier process ID (PID), ce qui a perturbé les opérations de la base de données. Ce problème peut affecter les utilisateurs de VPS qui utilisent des applications telles que Redmine, WordPress ou des plateformes de trading qui s’appuient sur MySQL. En s’appuyant sur les SSD NVMe haute performance d’AvaHost et les outils cPanel, ce guide explore les causes de cette erreur et fournit des solutions claires et réalisables pour restaurer la fonctionnalité de MySQL sur votre VPS AvaHost basé sur Ubuntu ou CentOS.

Causes de l’erreur

  1. Espace disque insuffisant
    Si votre serveur manque d’espace disque, MySQL peut ne pas démarrer car il ne peut pas écrire les journaux et les fichiers PID nécessaires.
  2. Autorisations de fichiers et de répertoires incorrectes
    MySQL requiert des droits de propriété et des autorisations spécifiques pour ses répertoires de configuration et de données. S’ils sont incorrects, MySQL peut ne pas être en mesure de créer ou de mettre à jour le fichier PID.
  3. Fichiers de données MySQL corrompus
    La corruption des fichiers de données MySQL peut empêcher le serveur de démarrer. Cela est souvent dû à des fermetures incorrectes ou à des problèmes de système de fichiers.
  4. Erreurs de configuration de MySQL
    Des erreurs dans my.cnf (le fichier de configuration de MySQL) peuvent faire échouer MySQL au démarrage. Des chemins incorrects pour les journaux, les répertoires de données ou les fichiers de socket sont des causes courantes.
  5. Conflits entre processus MySQL existants
    Si un ancien processus MySQL est en cours d’exécution ou si une instance précédente n’a pas été arrêtée correctement, cela peut empêcher une nouvelle instance de démarrer.
  6. Restrictions SELinux ou AppArmor
    Les politiques de sécurité appliquées par SELinux ou AppArmor peuvent empêcher MySQL d’écrire le fichier PID ou d’accéder aux répertoires nécessaires.

Comment corriger l’erreur

1. Vérifier l’espace disque disponible

Exécutez la commande suivante pour vérifier si le disque est plein :

df -h

Si le disque est plein, libérez de l’espace en supprimant les fichiers inutiles ou en augmentant la taille du disque.

2. Vérifier les journaux de service MySQL

Examinez les journaux d’erreurs de MySQL pour identifier la cause première :

tail -f /var/log/mysql/error.log

Ou, pour certaines distributions :

tail -f /var/log/mysqld.log

3. Vérifier les autorisations de fichiers et de répertoires

S’assurer que MySQL a la propriété et les permissions correctes :

sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod -R 755 /var/lib/mysql

Vérifiez également que le répertoire /var/run/mysqld/ existe :

sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld

4. Réparer les fichiers de données MySQL

Si vous soupçonnez une corruption, essayez d’exécuter

sudo mysqlcheck --all-databases

Ou essayez de redémarrer MySQL en mode de récupération :

sudo mysqld_safe --skip-grant-tables --skip-networking &

5. Vérifier le fichier de configuration de MySQL(my.cnf)

Vérifier les configurations incorrectes :

cat /etc/mysql/my.cnf

Recherchez les chemins d’accès mal configurés ou les paramètres contradictoires. Si nécessaire, rétablir une configuration par défaut.

6. Tuer les processus MySQL périmés

Si un ancien processus MySQL est en cours d’exécution, mettez-y fin :

sudo pkill -9 mysqld

Ensuite, essayez de redémarrer MySQL :

sudo systemctl start mysql

7. Désactiver SELinux/AppArmor (si nécessaire)

Désactiver temporairement SELinux :

sudo setenforce 0

Pour AppArmor, essayez de décharger le profil MySQL :

sudo aa-complain /etc/apparmor.d/usr.sbin.mysqld

8. Réinstaller MySQL (en dernier recours)

Si tout le reste échoue, réinstallez MySQL :

sudo apt remove --purge mysql-server
sudo apt install mysql-server

Veillez à sauvegarder vos données avant de tenter une réinstallation.

Conclusion

L’erreur “Le serveur s’est arrêté sans mettre à jour le fichier PID” dans MySQL peut provenir de différents problèmes tels que des problèmes de permission, des fichiers de données corrompus, des erreurs de configuration ou un manque d’espace disque. En recherchant systématiquement chaque cause potentielle et en appliquant les correctifs appropriés, vous pouvez restaurer les fonctionnalités de MySQL et éviter que ce problème ne se reproduise à l’avenir. Une maintenance régulière, des arrêts corrects et une surveillance peuvent aider à éviter des problèmes similaires à l’avenir.