linux安裝mysql啟動不起來總結


linux安裝mysql啟動不起來總結


今天,啟動MySQL服務器失敗,如下所示:

<code>[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]
/<code>

根據提示,分別使用systemctl status mysqld.service和journalctl -xe查看服務啟動失敗的原因

[root@spark01 ~]# systemctl status mysqld.service

<code>?.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=1Jan 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./<code>

[root@spark01 ~]# journalctl -xe

<code>-- -- 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/1Jan 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.25Jan 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=1Jan 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./<code>

但,可惜的時,這些信息並不能提供服務啟動失敗的真正原因。

這時候,不妨打開MySQL的告警日誌(linux一般在/var/log/mysqld.log),畢竟,只要MySQL服務啟動,告警日誌都會有輸出信息的,果然

<code>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 directory160120 18:00:20 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended/<code>

MySQL服務在啟動的時候,不能創建pid文件。

在終端看一下該目錄是否存在,果然,不存在。

於是,創建了/var/run/mysqld/目錄,重啟MySQL服務

[root@spark01 ~]# mkdir -p /var/run/mysqld/

[root@spark01 ~]# /etc/init.d/mysqld start

<code>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]/<code>

依舊報錯,重新查看告警日誌,有以下輸出

<code>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 denied160120 18:28:37 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended160120 18:32:06 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql/<code>

原來,/var/run/mysqld/的屬主和屬組還是root,mysql並不能在其中創建文件,後修改該目錄的屬主和屬組,啟動OK。

<code>[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 startStarting mysqld (via systemctl):                           [  OK  ]/<code>

另一種錯誤

還有常見的另一種錯誤是

<code>May 29 19:04:53 localhost mysqld: 2018-05-29T11:04:53.723812Z 0 [ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writableMay 29 19:04:53 localhost mysqld: 2018-05-29T11:04:53.723862Z 0 [ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writableMay 29 19:04:53 localhost mysqld: 2018-05-29T11:04:53.723871Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic errorMay 29 19:04:54 localhost mysqld: 2018-05-29T11:04:54.325440Z 0 [ERROR] Plugin 'InnoDB' init function returned error.May 29 19:04:54 localhost mysqld: 2018-05-29T11:04:54.325475Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.May 29 19:04:54 localhost mysqld: 2018-05-29T11:04:54.325483Z 0 [ERROR] Failed to initialize builtin plugins.May 29 19:04:54 localhost mysqld: 2018-05-29T11:04:54.325485Z 0 [ERROR] Aborting/<code>

The innodb_system data file 'ibdata1' must be writable

報錯原因大致為:你的數據文件不可寫

導致原因:yum安裝的mysql的擁有者是root,而mysql要求執行身份為mysql,權限問題導致數據文件不可寫

解決方法如下:

<code>[root@localhost ~]# chown -R mysql /var/lib/mysql[root@localhost ~]# systemctl start mysqld[root@localhost ~]# tailf /var/log/messages &   日誌打印:May 29 19:09:15 localhost mysqld: Version: '5.7.22'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Server (GPL)啟動成功/<code>

另外,這裡推薦我寫的文章雲服務器上安裝mysql的文章,嚴格按步驟 應該是不會出現以上錯誤的雲服務器Mysql安裝配置


分享到:


相關文章: