目录

  • 报错起因
  • 查找出错具体原因
      • 查看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服务的状态,未启动成功

查找出错具体原因

查看mysql报错日志信息

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

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

"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

端口被进程pid为1974的进程占用,如果端口没有被占用执行查看指令则不会显示任何内容

终结占用进程

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

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

启动成功问题解决

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

修改配置文件

如果之前手动添加过mysql的配置文件,可以在自己添加的配置文件中修改端口号
通过指令mysql --help|grep 'my.cnf'可以查看到配置文件的适用顺序,越往前优先级越高,/etc/my.cnf是默认存在也是优先级最高的配置文件,本机没有添加其他配置文件,所以直接修改默认配置文件

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

MySQL配置文件中没有端口号设置会默认使用3306端口,添加端口号设置port=[端口号]
设置的端口号要确认没有再被占用,可用通过前面提到的方法查看端口使用情况

重启MySQL服务

systemctl restart mysqld