MySQL出错:MySQL作业mysqld.service失败,查看“systemctl status mysqld.service”

MySQL出错:MySQL作业mysqld.service失败,查看“systemctl status mysqld.service”

最近,在使用MySQL的过程中,发现MySQL的服务出现了异常情况,公司内部的同事向我报告了这个问题。当我登陆到服务器上,尝试启动MySQL服务的时候,出现了以下的提示信息:

Job for mysqld.service failed because the control process exited with error code. 
See "systemctl status mysqld.service" and "journalctl -xe" for details.
Mysql

当我看到这个提示信息的时候,我首先尝试执行“systemctl status mysqld.service”命令,以查看服务状态和任何有关问题的详细描述。以下是系统返回的内容:

mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2021-11-17 14:05:27 CST; 2s ago
  Process: 14593 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=1/FAILURE)
 Main PID: 14625 (code=exited, status=0/SUCCESS)
   Status: "Server startup in progress"

Nov 17 14:05:27 localhost.localdomain mysqld_pre_systemd[14593]: [2021-11-17 14:05:26 +0800] [14593] [ERROR] Can't init tc log
Nov 17 14:05:27 localhost.localdomain systemd[1]: mysqld.service: control process exited, code=exited status=1
Nov 17 14:05:27 localhost.localdomain systemd[1]: Failed to start MySQL Server.
Nov 17 14:05:27 localhost.localdomain systemd[1]: Unit mysqld.service entered failed state.
Nov 17 14:05:27 localhost.localdomain systemd[1]: mysqld.service failed.
Nov 17 14:05:27 localhost.localdomain mysqld_pre_systemd[14624]: [2021-11-17 14:05:27 +0800] [14624] [ERROR] MySQL server PID file could not be found!
Nov 17 14:05:27 localhost.localdomain mysqld_pre_systemd[14624]: [2021-11-17 14:05:27 +0800] [14624] [ERROR] Do you already have another mysqld server running on port: XXXX?
Nov 17 14:05:27 localhost.localdomain mysqld_pre_systemd[14624]: [2021-11-17 14:05:27 +0800] [14624] [ERROR] Aborting
Mysql

为了分析这个问题,我们需要查看上述输出中给出的任何有关问题的信息。在这种情况下,错误日志表明在初始化tc日志时出现了问题,因此我们需要查看MySQL的日志文件,以进一步了解问题。以下是命令:

$ tail /var/log/mysqld.log
Mysql

当我执行上面的命令时,发现MySQL的日志文件中有以下关键信息:

[ERROR] Could not open log file
[ERROR] Aborting
Mysql

这表明MySQL无法打开其错误日志文件,该错误日志文件已被配置为为其配置文件中定义的位置。因此,要解决此问题,我需要检查配置文件中定义的所有位置并确保它们是正确配置的。

在我的服务器上, MySQL的配置文件是/etc/my.cnf,由于在我之前对文件做了一些不必要的更改,因此相关信息被更改了,导致日志文件的目录路径无法解析。因此,我需要将该路径更改为正确的位置,并重新启动MySQL服务,以使更改生效。以下是我所做的更改和MySQL恢复正常的输出:

# 在/etc/my.cnf中更改错误日志路径
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log           <--- 将文件路径更改为正确的路径

# 重新启动MySQL服务
systemctl restart mysqld

# 检查MySQL服务状态 systemctl status mysqld

mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2021-11-17 15:00:52 CST; 6s ago 
Mysql

总结

当MySQL服务出现异常情况时,我们可以使用系统返回的信息来查找问题所在。在本例中,使用“systemctl status mysqld.service”命令和MySQL的日志文件可以找到问题所在,并编辑MySQL的配置文件以解决问题。在更改配置文件后,记得重新启动MySQL服务并检查其状态以确保MySQL恢复正常。

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册