MySQL无法启动的解决办法

最近服务器重启后出现了好几次Mysql无法启动的情况,记录一下解决过程。

一、执行/etc/init.d/mysqld restart后报错如下:

[root@Joker ~]# /etc/init.d/mysqld restart
/www/server/mysql/bin/my_print_defaults: Can't read dir of '/etc/my.cnf.' (Errcode: 2)
Fatal error in defaults handling. Program aborted
/www/server/mysql/bin/my_print_defaults: Can't read dir of '/etc/my.cnf.' (Errcode: 2)
Fatal error in defaults handling. Program aborted
 ERROR! MySQL server PID file could not be found!
/www/server/mysql/bin/my_print_defaults: Can't read dir of '/etc/my.cnf.' (Errcode: 2)
Fatal error in defaults handling. Program aborted
Starting MySQL./www/server/mysql/bin/my_print_defaults: Can't read dir of '/etc/my.cnf.' (Errcode: 2)
Fatal error in defaults handling. Program aborted
/www/server/mysql/bin/my_print_defaults: Can't read dir of '/etc/my.cnf.' (Errcode: 2)
Fatal error in defaults handling. Program aborted
Logging to '/www/server/mysql/data/Joker.err'.
 ERROR! The server quit without updating PID file (/www/server/mysql/data/Joker.pid).

这里出现了Joker.pid这个文件,所以在解决过程中一直从这个文件入手,之前有两次通过尝试了网上各种办法后成功解决了,但是没有记录解决过程,所以第三次出现这个错误后,我便又开始在网上找各种解决办法,但都没有成功。

二、最后尝试执行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.

继续执行systemctl status mysqld.service,如下:

[root@Joker ~]# systemctl status mysqld.service
● mysqld.service - LSB: start and stop MySQL
   Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2023-03-29 17:20:11 CST; 1min 34s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 7286 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=1/FAILURE)

Mar 29 17:20:10 Joker mysqld[7286]: [102B blob data]
Mar 29 17:20:10 Joker mysqld[7286]: Fatal error in defaults handling. Program aborted
Mar 29 17:20:10 Joker mysqld[7286]: [87B blob data]
Mar 29 17:20:10 Joker mysqld[7286]: Fatal error in defaults handling. Program aborted
Mar 29 17:20:10 Joker mysqld[7286]: Logging to '/www/server/mysql/data/Joker.err'.
Mar 29 17:20:11 Joker mysqld[7286]: ERROR! The server quit without updating PID file (/www/server/mysql/data/Joker.pid).
Mar 29 17:20:11 Joker systemd[1]: mysqld.service: control process exited, code=exited status=1
Mar 29 17:20:11 Joker systemd[1]: Failed to start LSB: start and stop MySQL.
Mar 29 17:20:11 Joker systemd[1]: Unit mysqld.service entered failed state.
Mar 29 17:20:11 Joker systemd[1]: mysqld.service failed.

三、解决

修改/etc/my.cnf,在最后增加一行:innodb_force_recovery=1,然后重启即可。

Joker ·
评论 · 首页 订阅