起因:MySQL日志文件撑爆C盘,需要设置定时清理日志文件
操作:
1.查找相关资料,发现在CMD中登录MySQL,通过show variables like '%expire%'; 查看日志文件,再用set global binlog_expire_logs_seconds=60*60*24; 修改保存时间,注意MySQL8.0以后的版本不能使用expire_logs_days ,要用 binlog_expire_logs_seconds ,但是通过这个修改没有成功。
2.再次查资料,通过修改配置文件来进行设置定时清理日志文件,我是Windows系统,配置文件是C:\ProgramData\MySQL\MySQL Server 8.0\my.ini 也有是my.cnf的可能他们是用的Linux(猜测,毕竟没用过)。
在配置文件中[mysqld]中添加: expire_logs_day=5 //设置日志的过期天数,过了指定的天数,会自动删除。
注释掉下面两行就会禁止mysql的日志记录功能(单服务器)
#log-bin=mysql-bin #binlog_format=mixed 然后重启mysql
重启我是直接在服务中进行的重启

操作后的结果:

按照上述进行操作进行重启后,发现无法开启MySQL。。。

mysql8宕机后 启动后自动停止 mysql总是崩溃_MySQL

当时我心态有点崩了,再次查阅资料,MySQL出现:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)问题解决 可以把MySQL启动了

但是!!!

启动之后是一个新的,空的,什么数据都木有的数据库(此处应有天雷轰鸣声)

解决:

在之前查找资料看到过日志可以做数据恢复,不过看了好多都没弄明白,也不敢在尝试,怕把数据库彻底弄坏了

通过查找MySQL的Data文件发现数据库的文件还在,我再次搜索资料,发现应该是更改配置文件时保存的编码格式不对 注意下,配置文件打开时用的TXT打开的,保存的时候默认变成了UTF-8的编码,另存一个ANSI的文件,再替换掉就行了

mysql8宕机后 启动后自动停止 mysql总是崩溃_mysql8宕机后 启动后自动停止_02


这还没完,更改完配置文件需要重启MySQL,就在这时,我又发现个问题!

重启之后还是没有原来的数据,之后我搜到这篇帖子

MySQL80服务启动后停止

我查看了下err文件,的确存在3306端口被占用的情况,按照帖子的方法解除了占用,这时我突然反应过来,我之前启动的是MySQL的服务,而我用的是MySQL80的服务(别问我怎么发现的,我有三个用同一个MySQL安装包安装的电脑,在恢复的时候有对照),之后我再重新启动MySQL80的服务成功了!!!

他就这么的成功了!!!再用Navicat 看数据库,原来的数据回来了,而且不止视图,连查询都还在(普天同庆!!!)

就这样,折腾了我五六个小时的问题终于解决了!!!