Windows

致命錯誤:mysql.user 表已損壞。請執行 mysql_upgrade

  • December 30, 2017

我調整了 Azure VM 的大小,現在在 VM 內的 Windows 中執行的 MySQL DB 已經死了。我在啟動時看到以下致命錯誤。我嘗試按照它的建議執行 mysql_upgrade ,但這只是錯誤提示它無法連接。有沒有人對如何解決這個問題有任何想法?

2016-07-12T09:59:48.426367Z 0 [Note] Server hostname (bind-address): '*'; port: 3306
2016-07-12T09:59:48.426367Z 0 [Note] IPv6 is available.
2016-07-12T09:59:48.426367Z 0 [Note]   - '::' resolves to '::';
2016-07-12T09:59:48.426367Z 0 [Note] Server socket created on IP: '::'.
2016-07-12T09:59:48.426367Z 0 [Note] Shared memory setting up listener
2016-07-12T09:59:48.438315Z 0 [Note] InnoDB: Loading buffer pool(s) from C:\ProgramData\MySQL\MySQL Server 5.7\Data\ib_buffer_pool
2016-07-12T09:59:48.455584Z 0 [Note] InnoDB: Buffer pool(s) load completed at     160712  9:59:48
2016-07-12T09:59:48.455584Z 0 [ERROR] Fatal error: mysql.user table is     damaged. Please run mysql_upgrade.
2016-07-12T09:59:48.455584Z 0 [ERROR] Aborting

終於解決了!這對我有用:/etc/init.d/mysqld start --skip-grant-tables && mysql_upgrade

升級成功後,您可以這樣做:/etc/init.d/mysqld restart 或者,您可以單獨停止和啟動 mysqld。

我昨天在 Centos 6 上被鎖定在 mysql 錯誤中。

如果您在系統上安裝了不同版本的 mysql,而係統上已經安裝了另一個版本的 mysql,這確實可以節省您的時間。在這種情況下,很可能會出現不同類型的錯誤。

–skip-grant-tables 可以派上用場,讓您擺脫這種情況。如果您有一些安全問題,請檢查此:有關如何使用此選項進行安全性的連結。

有關 –skip-grant-tables 的更多詳細資訊: 這使任何人都可以在沒有密碼和所有權限的情況下進行連接,並禁用帳戶管理語句,例如 ALTER USER 和 SET PASSWORD。資料來源:點擊這裡從官方 mysql 網站了解更多關於跳過授權的資訊

克魯西卡

引用自:https://serverfault.com/questions/789328