最近在使用MySQL命令行時,發現突然出現了閃退的情況。啟動后窗口只出現了一瞬間,便立即關閉了,無法正常使用。經過一番排查,終于找到了一個解決辦法。
首先,我們需要了解一下MySQL錯誤日志。MySQL會將錯誤信息記錄在一個日志文件里,通過這些信息可以定位問題。通過cmd窗口進入MySQL安裝目錄下的bin文件夾,運行以下命令,查看錯誤日志文件。
mysqlbinlog.exe -v --base64-output=DECODE-ROWS --start-datetime=2022-01-09T00:00:00 --stop-datetime=2022-01-09T23:59:59 C:\ProgramData\MySQL\MySQL Server 5.7\Data\localhost.err
在日志文件里,我發現了以下錯誤信息。
[ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace mydb/t1 uses space ID: 12 at filepath: .\mydb\t1.ibd. Cannot open tablespace testdb/t1 which uses space ID: 12 at filepath: .\testdb\t1.ibd
從錯誤信息里可以看出,這是由于多次啟動MySQL導致的tablespace已經打開的錯誤。解決這個問題,我們需要重置該tablespace的Metadata。
運行以下命令,查看表的狀態。
USE testdb; SHOW TABLE STATUS WHERE `Name`='t1';
然后關閉MySQL服務。
進入MySQL文件夾,找到data文件夾下目標數據庫文件,刪除掉其中的.tbl和.ibd文件。
最后再次啟動MySQL服務,這個問題就解決了。
下一篇css代碼 字體粗細