对于一个开发者来说,Mysql 是一个非常重要的工具。但是最近我遇到了一个问题,我的 Mysql 服务启动不了了,我想和大家分享一下我的解决方法。
一开始我尝试使用命令 `systemctl start mysqld` 启动 Mysql 服务,但是却遇到了一个错误:
[root@localhost ~]# systemctl start mysqld.service
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`,得到了以下输出:
[root@localhost ~]# systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: failed (Result: start-limit) since Tue 2021-11-02 14:30:16 CST; 50s ago
Process: 3273 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=1/FAILURE)
Process: 3243 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 3273 (code=exited, status=1/FAILURE)
从上面的日志可以看到,Mysql 服务无法启动,将输出错误信息并退出。我怀疑是配置文件有问题,于是查看了 Mysql 的配置文件,使用命令 `cat /etc/my.cnf`,得到了以下输出:
[mysqld]
bind-address=127.0.0.1
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
我发现配置文件并没有问题,于是我再次查看日志,这次使用命令 `journalctl -xe`,发现错误信息是:`error while loading shared libraries: libkeyutils.so.1: cannot open shared object file: No such file or directory`。
这个错误提示告诉我缺失了一个共享库 libkeyutils.so.1,于是我尝试安装它,使用命令:
[root@localhost ~]# yum install -y keyutils-libs
安装成功后,我再一次尝试启动 Mysql 服务,使用命令 `systemctl start mysqld`,成功启动了服务。
通过以上步骤,我成功解决了 Mysql 服务启动不了的问题。