记一次磁盘空间不足致使mysql无法启动解决

现象

阿里云上自己部署的mysql突然就挂掉,之前的操作好像有通过navcat还原数据库,sql文件大概是500M的样子。在此之前,一切都很正常。

解决路径

  1. 第一个想到登录服务器,重新启动一下试试。然后,没啥用。报错内容
Job for mysqld.service failed because the control process exited with error code. 
See "systemctl status mysqld.service" and "journalctl -xe" for details.

那就按着日志来,执行 systemctl status mysqld.service 和 journalctl -xe。也没说是啥错误。

  1. Google走起。原来大家都遇到类似情况,可以通过/etc/my.cnf 找到日志输入的地址,我的地址为 /var/log/mysqld.log。tail -f -n 1000 var/log/mysqld.log。发现没有今天的日志,都是4月份的。这就蛋疼了,这节奏不对啊。别人都有日志,可以看到错误的原因。
  2. 这个状态有点奇怪,为啥一直是启动中的状态呢?


    image.png
  3. 作为一个菜鸡开发,我找遍了好多信息,别人mysql无法启动,都有日志输出错误原因,唯独我这边没有这个情况。那好吧,服务器重启一把,也没影响,试试总没错,虽然没抱希望。然后,重启果然也没用。
  4. 这难不成是要逼我重做实例么?不行,不能认输。那安装个docker吧。在docker上再搞mysql总行了吧。docker 安装也报错,这次不一样了,在执行
sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

时候,说我没有足够的空间。这是搞我啊,我去看看磁盘空间。

df -hl
#### 结果
Filesystem      Size  Used Avail Use% Mounted on

/dev/vda1        40G  38G   0  100% /

查看下是什么文件,占了这么大空间。

# cd到 / 目录下
cd /
# 执行命令
du -sh *

结果temp 目录占了31G空间


temp文件夹占用达31G

再查看下temp目录下谁占这么多,原来是一个sql的日志文件,
39F6E4612EB5651C362BFB29C59E9B83.png

扎心了。
也不管了,先删掉这个文件,然后再新建一个,相当于是清空了内容。我这么操作,是因为这是测试环境,按道理应该要考虑保存最近一段日期的记录。

最终解决方案

没错,删除那个日志,保证磁盘有足够的空间,mysql就启动成功了。所以最终mysql无法启动的原因是 -------- “磁盘空间不够”

反思

其实在上边看到第 3 步那个图的信息时候,就应该考虑一下磁盘的问题。因为看起来mysql的启动是被阻塞了,一直处于启动状态,很可能的原因,就是磁盘空间不够,mysql在等待磁盘空出来。不过,毕竟自己不是玩运维的,能解决,我就很开心了。

你可能感兴趣的:(记一次磁盘空间不足致使mysql无法启动解决)