MySQL 找不到binlog文件启动失败的解决办法

       因为近期处理数据的需要,想用下本机许久没有启动的Mysql(Windows环境下),发现竟然启动失败,在err日志文件中(文件名为机器名称+win.err)显示如下错误:

mysqld: File '.\binlog.000005' not found (OS errno 2 - No such file or directory)
2022-07-19T01:01:20.153111Z 0 [ERROR] [MY-010958] [Server] Could not open log file.
2022-07-19T01:01:20.154277Z 0 [ERROR] [MY-010041] [Server] Can't init tc log
2022-07-19T01:01:20.155642Z 0 [ERROR] [MY-010119] [Server] Aborting

       提示找不到 “binlog.000005”文件,由于打不开这个文件,因此启动终止。这个是MySQL运行时使用的二进制日志文件,主要用于记录更改数据的语句,这里由于不知何种原因被删除了,造成MySQL服务无法正常启动。

       经过研究,发现MySQL的二进制日志文件索引放在“binlog.index”中,下面是出现MySQL不能启动时的文件内容:

.\binlog.000004
.\binlog.000005

可以看到最后一个文件为“binlog.000005”,解决的办法很简单,就是删除“binlog.index”文件,这样MySQL将默认重建“binlog.000001”二进制日志文件,MySQL服务正常启动!

另外看到在MySQL启动日志文件中,有一个警告信息:

2022-07-19T01:01:18.232746Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.

 即提示当前使用的是“utf8”字符集,其对应的是MySQL的utf8mb3,不是真正的UTF-8,因为其只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节,MySQL 2010年发布的 utf8mb4是真正的UTF-8,因此建议采用utf8mb4。

要去掉这个警告信息,只需要在MySQL配置文件中,将字符集改为utf8bm4即可,具体如下:

# 服务端使用的字符集默认为UTF8
#character-set-server=utf8
character-set-server=UTF8MB4

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值