Penyelesaian kepada kegagalan mysqld centos untuk dimulakan: 1. Semak log perkhidmatan 2. Ubah suai pemilik dan kumpulan "/var/run/mysqld/".
Persekitaran pengendalian artikel ini: Sistem CentOS 7, komputer DELL G3
Apakah yang perlu saya lakukan jika centos mysqld gagal mulakan?
Hari ini, memulakan pelayan MySQL gagal, seperti yang ditunjukkan di bawah:
[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]
Mengikut gesaan, gunakan systemctl status mysqld.service dan journalctl -xe masing-masing untuk menyemak sebab kegagalan permulaan perkhidmatan
[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.
Tetapi, malangnya, maklumat ini tidak memberikan sebab sebenar kegagalan permulaan perkhidmatan.
Pada masa ini, anda juga boleh membuka log penggera MySQL Lagipun, selagi perkhidmatan MySQL dimulakan, log penggera akan mengeluarkan maklumat,
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
Perkhidmatan MySQL tidak boleh dibuat apabila fail pid dimulakan.
Semak sama ada direktori itu wujud dalam terminal, dan pastinya, ia tidak wujud.
Jadi, saya mencipta direktori /var/run/mysqld/ dan memulakan semula perkhidmatan 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]
Ralat masih berlaku Saya menyemak log penggera sekali lagi dan mendapati output berikut
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
Ternyata pemilik dan kumpulan /var/run/mysqld/ masih berakar, dan mysql tidak boleh mencipta fail di dalamnya Selepas mengubah suai pemilik dan kumpulan direktori, permulaan adalah 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 ]
Ringkasan:
Semasa saya bermain dengan Kubernetes, saya sering mengalami kegagalan permulaan Menurut gesaan systemctl, Saya lulus Perintah systemctl status mysqld.service dan journalctl -xe selalunya tidak memuaskan untuk menyemak sebab kegagalan permulaan perkhidmatan Sebaliknya, mereka memberikan petunjuk yang salah, memikirkan bahawa ini berkaitan dengan sistem. Malah, dengan menyemak log perkhidmatan, anda sering dapat mengetahui dengan lebih jelas sebab mengapa perkhidmatan gagal dimulakan.
Disyorkan: "tutorial penggunaan centos"
Atas ialah kandungan terperinci Apa yang perlu dilakukan jika centos mysqld gagal dimulakan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!