錯誤信息如下:
2020-12-08T08:41:34.003470Z 0 [ERROR] [MY-010958] [Server] I/O error reading the header from the binary log.
2020-12-08T08:41:34.004821Z 0 [ERROR] [MY-010041] [Server] Can't init tc log
2020-12-08T08:41:34.006049Z 0 [ERROR] [MY-010119] [Server] Aborting
-----------
2020-12-08T08:49:00.150380Z 0 [System] [MY-010116] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.19) starting as process 13436
mysqld: File '.\DESKTOP-IR5UPKH-bin.000033' not found (OS errno 2 - No such file or directory)
2020-12-08T08:49:02.906655Z 0 [ERROR] [MY-010958] [Server] Could not open log file.
2020-12-08T08:49:02.907263Z 0 [ERROR] [MY-010041] [Server] Can't init tc log
2020-12-08T08:49:02.907913Z 0 [ERROR] [MY-010119] [Server] Aborting
故障排除步驟:
1. Mysql服務啟動失敗,到Mysql安裝目錄下查找錯誤日志(DESKTOP-IR5UPKH.err是"計算機名".err):
C:\ProgramData\MySQL\MySQL Server 8.0\Data\DESKTOP-IR5UPKH.err
2. 錯誤信息如下:
2020-12-08T08:41:34.003470Z 0 [ERROR] [MY-010958] [Server] I/O error reading the header from the binary log.
2020-12-08T08:41:34.004821Z 0 [ERROR] [MY-010041] [Server] Can't init tc log
2020-12-08T08:41:34.006049Z 0 [ERROR] [MY-010119] [Server] Aborting
3.根本原因:
Mysql的日志文件出錯,很可能是你自己創建了一個與之前日志名相同的文件,但是Mysql知道文件已經不是原有的日志文件了。我的錯誤就是刪除原有的日志文件,然后自己創建了一個同名的日志文件導致的。
4.解決方案:
a.定位到當前日志文件位置,我的是:C:\ProgramData\MySQL\MySQL Server 8.0\Data\DESKTOP-IR5UPKH-bin.000033
b. 刪除錯誤的日志文件:DESKTOP-IR5UPKH-bin.000033
c.打開同級目錄下的日志索引文件:C:\ProgramData\MySQL\MySQL Server 8.0\Data\DESKTOP-IR5UPKH-bin.index,並刪除剛剛刪除日志文件的那一行
d.保存並重啟Mysql服務,問題解決。
e.如果沒有解決,繼續查看錯誤日志(DESKTOP-IR5UPKH.err)里面的詳細內容解決,一般是再刪除index文件里沒有的日志文件行,重啟服務即可。