centos系统配置mysql服务起不来_解决CentOs7下MySQL服务启动失败的问题

本文介绍了在CentOS7系统中遇到MySQL服务无法启动的问题,通过查看错误日志发现是PID文件路径问题。解决方案包括在配置文件中设置pid-file路径,创建PID目录并赋予mysql用户权限,以及修改启动文件和重新加载配置。此外,还提到将MySQL设置为开机启动,以及为了远程连接MySQL需要修改root用户的host和开放服务器端口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

老夫前几天才在虚拟机的CentOS安装好MySQL, 过了个节, 居然都是一成灰了, 起不起来了.

[root@localhost ~]# service mysqld start

Starting mysqld (via systemctl): Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details. [FAILED]

按照上面的说法, 是让我们运行systemctl status mysqld.service journalctl -xe 着两个命令去查看错误的详细.

但是我运行了一下, 发现并没有什么帮助.所以我查看了一下MySQL的启动日志less /var/log/mysqld.log 发现了这个东东.

[ERROR] Can't start server: can't check PID filepath: No such file or directory

那么,现在问题就比较明确了, 就是MySQL的PID文件路径.(PID就是Linux里面的进程ID)

这个路径是在MySQL的配置文件/etc/my.cnf里面配置的, 理论上安装好MySQL的时候就有,如果没有就加上.

在[mysqld] 下面加上这一句 pid-file=/var/run/mysqld/mysqld.pid

现在只需要创建这个文件路径就OK啦.

# 创建PID目录

[root@#localhost ~]# mkdir -p /var/run/mysqld/

# 查看一下创建目录的用户组,因为MySQL启动是用mysql这个用户运行的,我们之前用的是root用户创建的文件夹,那么mysql用户是没有权限的,所以我们需要给mysql用户授权

[root@#localhost ~]# ls -ld /var/run/mysqld/

drwxr-xr-x. 2 root root 60 1月 6 02:18 /var/run/mysqld/

# 授权

[root@#localhost ~]# chown mysql.mysql /var/run/mysqld/

# 启动MySQL

[root@#localhost ~]# service mysqld start

Starting mysqld (via systemctl): [ 确定 ]

# 到此, 启动成功了

以此记录老夫在使用MySQL的时候遇到的问题~

更新: 2021-01-07 10:06:41

第二天, 老夫启动虚拟机, mysql服务又又又TM起不起来了, 依然是老问题, 但是每次都去配置一下, 也不是个事.虽然可以写个脚本解决, 但是感觉还是不方便.遂~ 我把pid文件的位置换了个地方.

这里需要说明一下, 默认mysqld.pid的路径是/var/run/mysqld/mysqld.pid 这个路径是放在内存中的, 所以每次关机了就会删除.

我把这个文件换到了这个路径下面/var/lib/mysql/mysqld.pid,需要做的修改如下:

1. 修改配置文件

修改/etc/my.cnf里面的pid-file值为这样:

pid-file=/var/lib/mysql/mysqld.pid

2. 修改启动文件

修改/etc/init.d/mysqld文件里面的pid-file为这样:(使用vim命令, 然后找到这一行修改)

get_mysql_option pid-file "/var/lib/mysql/mysqld.pid" mysqld mysqld_safe

3. 重新加载启动文件

systemctl daemon-reload

4. 重启MySQL

service mysqld start

5. 将MySQL加入开机启动

如果你的mysql没有开启启动,可以使用这个命令加入:

chkconfig mysqld on

另外, mysql服务启动后, 我们一般是在另外的电脑用工具连接mysql服务, 我使用的是DataGrip, 如果要让外面的电脑能够连接上mysql,首先需要的是将mysql的root用户的host修改为%. 这个登录mysql了就可以修改. 第二个就是要开放服务器的3306端口, 因为mysql默认端口是3306,如果你电脑的mysql重新设置了端口, 就要开放对应的端口. 因为我是本地虚拟机用来测试用的, 所以我就不做一个端口的开放, 直接关闭防火墙.不推荐这个方式在生产服务器使用.

关闭防火墙命令:(centos7可以使用)

//临时关闭

systemctl stop firewalld

//禁止开机启动

systemctl disable firewalld

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值