首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

解決 MySQL 啟動錯誤:Table 'mysql.host' doesn't exist 及服務無法啟動問題

     編輯:MySQL 資料庫相關知識

錯誤現象

MySQL 啟動時錯誤日誌記錄:

[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

這通常發生在修改數據目錄(datadir)後,因為權限表仍在預設目錄中。

原因分析

標準安裝流程中,mysql_install_db 會在預設目錄(如 /usr/local/mysql/var)建立權限表。若啟動時指定 --datadir=/u01/mysql/data,MySQL 會在新目錄尋找權限表,導致找不到 mysql.host 等表。

解決方法

方法一:重新初始化權限表(推薦)

在執行 mysql_install_db 時加上 --datadir 參數,指向實際數據目錄:

scripts/mysql_install_db --user=mysql --datadir=/u01/mysql/data

此後啟動命令保持一致即可:

/usr/local/mysql/bin/mysqld_safe --user=mysql --log-error=/u01/mysql/mysql_error/error --datadir=/u01/mysql/data

方法二:複製舊權限表(備選)

將原目錄(/usr/local/mysql/var/mysql/)下的 host.*、user.*、db.* 等文件複製到新數據目錄的 mysql/ 下。但需重新建立用戶與權限,風險較高,未實測驗證。

Windows 環境下 MySQL 服務啟動失敗(錯誤 1053)

現象

安裝完成後重啟服務報錯:

無法啟動 MySQL 服務。錯誤 1053: 服務沒有及時響應啟動或控制請求。

根因

系統管理員帳號名稱包含 $ 字符,導致服務無法正確加載用戶配置文件。

解決步驟

  1. 建立一個普通本地用戶(如 MySQLUSER),設定密碼。
  2. 結束 mysqld.exe 進程。
  3. 右鍵 MySQL 安裝目錄 → 屬性 → 安全 → 編輯 → 添加 MySQLUSER,給予「完全控制」權限。
  4. 打開服務管理器(services.msc),右鍵 MySQL 服務 → 屬性 → 登錄 → 選擇「此賬號」,輸入新建用戶名與密碼。
  5. 重啟服務或電腦,問題解決。

服務登錄配置圖示

常見重裝清理步驟(備忘)

  • 控制面板卸載 MySQL
  • 刪除安裝目錄與數據目錄
  • 刪除註冊表殘留項:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL 等(可用 F3 循環查找「MySQL」刪除)
  • 刪除 C:\Documents and Settings\All Users\Application Data\MySQL(隱藏文件夾)
  • 重啟電腦後重新安裝

若遇到 could not start the service mysql error:0,亦可嘗試 mysqld-nt -remove 移除服務後再重裝。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved