centOS7 Mysql启动失败报错Job for mysqld.service failed because the control process exited with error code.
作者:mmseoamin日期:2023-12-25

目录

  • 报错起因
  • 查找出错具体原因
      • 查看mysql报错日志信息
      • 解决方案
        • 方法一:结束进程对mysql默认端口的占用
          • 查看端口号占用情况
          • 终结占用进程
          • 方法二:修改MySQL服务默认端口号
            • 修改配置文件
            • 重启MySQL服务

              报错起因

              在CentOS7中安装部署MySQL服务,首次启动服务时失败报错

              Job for mysqld.service failed because the control process exited with error code.See “systemctl status mysqld.service” and “journal -xe” for details.

              引起此报错的原因不尽相同,所以建议先找到引起报错的具体原因再针对性寻找解决方案

              报错信息告知可以使用"systemctl status mysqld.service" 和 "journal -xe"指令查看mysql状态以及查看启动失败反馈的结果信息,但本机在查看此反馈信息时还是没有找到具体的出错原因。于是以本机遇到的问题为例提供了另一种解决方法。

              先确认了一下mysql服务的状态,未启动成功

              centOS7 Mysql启动失败报错Job for mysqld.service failed because the control process exited with error code.,在这里插入图片描述,第1张

              查找出错具体原因

              查看mysql报错日志信息

              本机是通过查看mysql日志信息找到了具体的出错原因

              cat /var/log/mysqld.log | grep ERROR #只查看具体的报错日志,省略了其他类型的日志
              

              centOS7 Mysql启动失败报错Job for mysqld.service failed because the control process exited with error code.,发现问题处在端口号被占用,第2张

              "Bind on TCP/IP port: Address already in use"

              发现问题是因为mysql服务默认使用的3306端口被占用,该问题可以通过两种方法解决

              解决方案

              1. 结束其他进程对3306端口的占用

              2. 修改mysql服务配置文件中的指定端口号,设置为另一个可用端口号

              本机采用的第一种解决方式,也简单说明一下第二种解决方式

              方法一:结束进程对mysql默认端口的占用

              查看端口号占用情况

              • netstat -lnp|grep [端口号] #显示指定端口号使用情况
              • netstat -ntlp #显示所有端口使用情况
                netstat -lnp|grep 3306
                

                centOS7 Mysql启动失败报错Job for mysqld.service failed because the control process exited with error code.,在这里插入图片描述,第3张端口被进程pid为1974的进程占用,如果端口没有被占用执行查看指令则不会显示任何内容

                终结占用进程

                kill -9 [进程PID]
                
                kill -9 1974 #本机端口是被PID为1974的进程占用
                

                再次查看端口确认进程已被杀掉

                centOS7 Mysql启动失败报错Job for mysqld.service failed because the control process exited with error code.,在这里插入图片描述,第4张

                启动成功问题解决

                centOS7 Mysql启动失败报错Job for mysqld.service failed because the control process exited with error code.,在这里插入图片描述,第5张

                方法二:修改MySQL服务默认端口号

                修改配置文件

                如果之前手动添加过mysql的配置文件,可以在自己添加的配置文件中修改端口号

                通过指令mysql --help|grep 'my.cnf'可以查看到配置文件的适用顺序,越往前优先级越高,/etc/my.cnf是默认存在也是优先级最高的配置文件,本机没有添加其他配置文件,所以直接修改默认配置文件centOS7 Mysql启动失败报错Job for mysqld.service failed because the control process exited with error code.,在这里插入图片描述,第6张

                vi /etc/my.cnf #修改配置文件
                

                MySQL配置文件中没有端口号设置会默认使用3306端口,添加端口号设置port=[端口号]

                设置的端口号要确认没有再被占用,可用通过前面提到的方法查看端口使用情况

                centOS7 Mysql启动失败报错Job for mysqld.service failed because the control process exited with error code.,在这里插入图片描述,第7张

                重启MySQL服务

                systemctl restart mysqld