Problème
Lorsque vous essayez de démarrer MySQL à l'aide de systemctl, le démarrage échoue, par exemple :
# systemctl status mysqld ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: inactive (dead) Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html
# systemctl start mysqld Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
Solution
Il peut y avoir plusieurs causes à cela. Voici quelques exemples (mais non limités à) :
- Une faute de frappe dans une option de configuration du fichier de configuration MySQL.
- Présence d'une option qui n'est plus utilisée dans le fichier de configuration MySQL.
- Autorisation incorrecte au niveau du système de fichiers.
Pour rechercher quelle erreur empêche MySQL de démarrer, plusieurs sources peuvent être utilisées :
1. Le journal des erreurs MySQL
Par défaut, il se trouve dans /var/log/mysqld.log mais peut être à un emplacement différent si log-error L'option est définie dans le fichier de configuration MySQL. C'est le meilleur endroit pour commencer, mais selon l'erreur, le processus de démarrage peut même ne pas être allé assez loin pour écrire dans le journal des erreurs MySQL.
2. Vérifiez la sortie de "systemctl status mysqld"
La sortie de "systemctl status mysqld" peut également être utile pour identifier la cause de l'échec.
# systemctl status mysqld
3. Le journal systemd
Le journal systemd peut aider à trouver la cause première de l'échec. Vous pouvez par exemple le parcourir de manière interactive en utilisant :
# journalctl -xe
Si vous devez télécharger le journal pour le faire analyser par le fournisseur, vous devez déterminer où il se trouve. Ceci est spécifique au système. Par exemple, avec la configuration par défaut, le journal sur CentOS/RHEL 7 se trouve dans un sous-répertoire sous /run/log/journal/ , par exemple /run/log/journal/1ffd55f216ea46bd82d0f144065cc29b/system.journal. Un autre emplacement peut être /var/log/journal.
Ou vous pouvez exporter le journal comme :
# journalctl > journal.log
Une fois le message d'erreur déterminé, utilisez-le pour rechercher la cause première.