Login
网站首页 > 文章中心 > 其它

MySQL8.0服务无法正常启动的解决过程

作者:小编 更新时间:2023-09-17 17:28:52 浏览量:223人看过

1. 确认错误信息

首先,出现问题时需要先确认错误信息.可以在MySQL安装目录下的data目录中找到错误日志文件,一般命名为hostname.err,其中hostname为计算机名称.

在错误日志文件中查找关键词,如error、fail等,可以快速定位问题所在.例如,某用户在启动MySQL服务时出现了以下错误:


[ERROR] [MY-010262] [Server] Can't start server : Bind on unix socket: Permission denied
[ERROR] [MY-013394] [Server] Failed to initialize DD Storage Engine: 13


2. 解决权限问题

根据错误信息,可以尝试解决权限问题.例如,在上述错误中,可以尝试修改/var/run/mysqld/mysqld.sock文件的权限:


$ sudo chmod 777 /var/run/mysqld/mysqld.sock


如果还是出现权限被拒绝的错误,可以检查是否存在其他进程占用了该文件,或者修改MySQL服务的配置文件,将Unix Socket绑定到其他目录.

③ 修改配置文件

如果解决权限问题后,MySQL服务还是无法正常启动,可以尝试修改MySQL配置文件.配置文件一般位于MySQL安装目录下的/etc/my.cnf或/etc/mysql/my.cnf.

例如,以下是某用户遇到的MySQL服务无法启动的错误信息:


[ERROR] [MY-000067] [Server] Unknown option '--skip-locking'
[ERROR] [MY-010119] [Server] Aborting


④ 启用调试模式

如果以上解决方法均不起作用,可以尝试启用MySQL的调试模式,详细排查错误.可以在MySQL服务启动命令中加入--verbose和--debug选项,例如:


$ sudo mysqld --verbose --debug


启动后,MySQL服务会在控制台输出详细的调试信息,包括每个线程的执行情况、数据库操作等.

示例1:MySQL服务在Ubuntu 20.04上启动失败


$ sudo systemctl start mysql
Job for mysql.service failed because the control process exited with error code.
See "systemctl status mysql.service" and "journalctl -xe" for details.


用户执行systemctl status mysql.service命令后查看详细信息:


$ systemctl status mysql.service
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2021-07-06 19:19:57 CST; 8min ago
   Process: 6685 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=203/EXEC)


解决方法:打开该脚本文件,检查其中的执行命令是否正确,例如my_print_defaults命令是否存在,MySQL的安装目录是否正确等.

示例2:MySQL服务在CentOS 7上启动失败


[ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 13 - Permission denied)
[ERROR] Can't start server : Bind on unix socket: Permission denied


可以看到,MySQL服务启动时在创建PID文件/var/run/mysqld/mysqld.pid和绑定Unix Socket时,都出现了权限被拒绝的错误.

解决方法:检查/var/run/mysqld目录是否存在,若不存在则创建该目录并将所属用户和组设置为mysql.


$ sudo mkdir /var/run/mysqld
$ sudo chown -R mysql:mysql /var/run/mysqld


同时,可以修改MySQL服务的配置文件,将PID文件位置修改为其他可写目录,并重启MySQL服务:


$ sudo vi /etc/my.cnf
pid-file=/var/lib/mysql/mysqld.pid
$ sudo systemctl restart mysql


注意:以上解决方法仅供参考,具体情况需要根据错误信息进行排查和解决.

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章