mysql star item 失败_解决CentOS7下MySQL服务启动失败的问题.md

---

title: 解决CentOs7下MySQL服务启动失败的问题

date: 2021-01-06 15:21:31

tags: MySQL

---

老夫前几天才在虚拟机的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

```

一键复制

编辑

Web IDE

原始数据

按行查看

历史

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值