Solution à l'échec de démarrage de centos mysqld : 1. Vérifiez le journal du service ; 2. Modifiez le propriétaire et le groupe de "/var/run/mysqld/".
L'environnement d'exploitation de cet article : système CentOS 7, ordinateur DELL G3
centos Que dois-je faire si mysqld ne démarre pas ?
Aujourd'hui, le démarrage du serveur MySQL a échoué, comme indiqué ci-dessous :
[root@spark01 ~]# /etc/init.d/mysqld start Starting mysqld (via systemctl): Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details. [FAILED]
Selon les invites, utilisez respectivement systemctl status mysqld.service et journalctl -xe pour vérifier la raison de l'échec de démarrage du service
[root@spark01 ~]# systemctl status mysqld.service
?.mysqld.service - SYSV: MySQL database server. Loaded: loaded (/etc/rc.d/init.d/mysqld) Active: failed (Result: exit-code) since Wed 2016-01-20 18:26:57 CST; 40s ago Docs: man:systemd-sysv-generator(8) Process: 2979 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=1/FAILURE) Jan 20 18:26:56 spark01 systemd[1]: Starting SYSV: MySQL database server.... Jan 20 18:26:57 spark01 mysqld[2979]: MySQL Daemon failed to start. Jan 20 18:26:57 spark01 mysqld[2979]: Starting mysqld: [FAILED] Jan 20 18:26:57 spark01 systemd[1]: mysqld.service: control process exited, code=exited status=1 Jan 20 18:26:57 spark01 systemd[1]: Failed to start SYSV: MySQL database server.. Jan 20 18:26:57 spark01 systemd[1]: Unit mysqld.service entered failed state. Jan 20 18:26:57 spark01 systemd[1]: mysqld.service failed.
[root@spark01 ~]# journalctl -xe
-- -- Unit session-2.scope has begun starting up. Jan 20 18:26:48 spark01 sshd[2916]: pam_unix(sshd:session): session opened for user spark by (uid=0) Jan 20 18:26:52 spark01 su[2944]: (to root) spark on pts/1 Jan 20 18:26:52 spark01 su[2944]: pam_unix(su-l:session): session opened for user root by spark(uid=1000) Jan 20 18:26:56 spark01 polkitd[909]: Registered Authentication Agent for unix-process:2974:117137 (system bus name :1.25 Jan 20 18:26:56 spark01 systemd[1]: Starting SYSV: MySQL database server.... -- Subject: Unit mysqld.service has begun start-up -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit mysqld.service has begun starting up. Jan 20 18:26:57 spark01 mysqld[2979]: MySQL Daemon failed to start. Jan 20 18:26:57 spark01 mysqld[2979]: Starting mysqld: [FAILED] Jan 20 18:26:57 spark01 systemd[1]: mysqld.service: control process exited, code=exited status=1 Jan 20 18:26:57 spark01 systemd[1]: Failed to start SYSV: MySQL database server.. -- Subject: Unit mysqld.service has failed -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit mysqld.service has failed. -- -- The result is failed. Jan 20 18:26:57 spark01 systemd[1]: Unit mysqld.service entered failed state. Jan 20 18:26:57 spark01 systemd[1]: mysqld.service failed. Jan 20 18:26:57 spark01 polkitd[909]: Unregistered Authentication Agent for unix-process:2974:117137 (system bus name :1.
Mais, malheureusement, ces informations ne fournissent pas la véritable raison de l'échec de démarrage du service.
À ce stade, vous pourriez aussi bien ouvrir le journal des alarmes MySQL. Après tout, tant que le service MySQL est démarré, le journal des alarmes affichera des informations
2016-01-20T10:00:19.935771Z 0 [ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2 - No such file or directory) 2016-01-20T10:00:19.935795Z 0 [ERROR] Can't start server: can't create PID file: No such file or directory 160120 18:00:20 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
Le service MySQL ne peut pas créer de fichier pid lorsqu'il le fait. est démarré.
Vérifiez dans le terminal si le répertoire existe Effectivement, il n'existe pas.
J'ai donc créé le répertoire /var/run/mysqld/ et redémarré le service MySQL
[root@spark01 ~]# mkdir -p /var/run/mysqld/ [root@spark01 ~]# /etc/init.d/mysqld start Starting mysqld (via systemctl): Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details. [FAILED]
L'erreur s'est toujours produite. J'ai vérifié à nouveau le journal des alarmes et j'ai trouvé la sortie suivante
2016-01-20T10:28:37.183387Z 0 [ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 13 - Permission denied) 2016-01-20T10:28:37.183431Z 0 [ERROR] Can't start server: can't create PID file: Permission denied 160120 18:28:37 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 160120 18:32:06 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Il s'est avéré que le propriétaire et le groupe. de /var/run/mysqld/ Toujours root, mysql ne peut pas y créer de fichiers. Ensuite, modifiez le propriétaire et le groupe du répertoire et démarrez OK.
[root@spark01 ~]# ls -ld /var/run/mysqld/ drwxr-xr-x 2 root root 40 Jan 20 18:28 /var/run/mysqld/ [root@spark01 ~]# chown mysql.mysql /var/run/mysqld/ [root@spark01 ~]# /etc/init.d/mysqld start Starting mysqld (via systemctl): [ OK ]
Résumé :
Quand je jouais avec Kubernetes, je rencontrais souvent des échecs de démarrage. Selon les invites systemctl, les raisons des échecs de démarrage du service étaient souvent vérifiées via le statut systemctl mysqld.service et journalctl. Commandes -xe Insatisfaisant, mais cela donnait une fausse indication, pensant que cela était lié au système. En fait, en vérifiant les journaux de service, vous pouvez souvent connaître plus clairement les raisons pour lesquelles le service n'a pas pu démarrer.
Recommandé : "Tutoriel d'utilisation des centos"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!