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/ 下。但需重新建立用戶與權限,風險較高,未實測驗證。
安裝完成後重啟服務報錯:
無法啟動 MySQL 服務。錯誤 1053: 服務沒有及時響應啟動或控制請求。
系統管理員帳號名稱包含 $ 字符,導致服務無法正確加載用戶配置文件。
MySQLUSER),設定密碼。mysqld.exe 進程。MySQLUSER,給予「完全控制」權限。services.msc),右鍵 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 移除服務後再重裝。