【MySQL踩坑日记】MySQL清除.bin日志文件后死活起不来服务

文章描述了一名开发者在处理磁盘空间不足问题时,误删了MySQL的.bin日志文件,导致服务无法启动。通过分析日志、修改配置以及处理mysql-bin.index文件,最终成功重启MySQL服务。日志文件对于数据恢复和主从同步至关重要。
摘要由CSDN通过智能技术生成

今天开发的业务需求的时候遇到一个问题,开发数据库链接不上,进入虚拟机通过

df -h
命令查看到是磁盘满了,通过大文件命令

find / -type f -size +200M
查看,原来是大量的.bin日志文件占用了磁盘的存储空间,然后通过命令

sudo rm -f mysql-bin.000*
删除了今天以前的.bin日志文件。(提示,一定要保留最后一个,不然后面会报错)

然后通过登录命令

mysql -uroot -p
进入MySQL却一直报错,提示ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

网上查找资料是众说纷纭,有的说是删除/var/lib/mysql目录下的mysql.sock文件,有的说是my.cnf配置文件中的socket指向不对,然后都试了,都是MySQL的服务启动失败。

然后再去看MySQL的日志,日志一般都放在/var/log的这个目录下,通过命令

tail -1000f mysqld.log
查看最近的日志,日志提示

 报错信息是提示找不到/var/lib/mysql/mysql-bin.000234'这个日志文件

首先来说一下这个/var/lib/mysql/mysql-bin.000234日志文件是干嘛的

mysql-bin.000234这个文件是数据库的操作日志,我们的写库操作都会记录在这个日志中,例如UPDATE一个表,或者DELETE一些数据,即使该语句没有匹配的数据,这个命令也会存储到日志文件中,还包括每个语句执行的时间,也会记录进去的。

再来说一下这些日志文件是用来做什么的呢,

1:数据恢复

如果你的数据库出问题了,而你之前有过备份,那么可以看日志文件,找出是哪个命令导致你的数据库出问题了,想办法挽回损失。

2:主从服务器之间同步数据

主服务器上所有的操作都在记录日志中,从服务器可以根据该日志来进行,以确保两个同步。

既然日志提示说找不到这个日志文件,那么我们就去配置文件中

sudo vi my.cnf
把日志打印配置给注释了,看下服务能不能起来

:

输入启动命令

sudo service mysqld restart
 好家伙,启动成功

 但是一想,那个日志必须还得打着呀,万一哪一天不小心删库了还能拯救一下,emmmmmm

后来再接着把配置文件中的注释打开,再次重启,发现又起不来了,然后再次打开日志文件的存放地址/var/lib/mysql/,发现还有这么一个和日志文件相似的文件——mysql-bin.index文件,打开来一看,发现一大堆日志文件

 都是自己删除了的,在网上查找资料,网上说是由于我们删除了binlog日志,在mysql-bin.index文件中会加载这些日志文件从而造成重启报错,通过查看mysql-bin.index文件,将已被删除的日志文件进行注释处理,然后再次重启就可以了。我这里是将自己已经删除的日志文件全删了,然后保存,再次重启就成功了。

收工,下班!
————————————————
版权声明:本文为CSDN博主「小刘要努力(ง •̀_•́)ง」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44684272/article/details/124794997

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值