[MySQL] information_schema 中 USER_PRIVILEGES 沒有 'root'@'localhost'

正常情況的 USER_PRIVILEGES 表格 (table)
因為自己的電腦裡面有兩個 mysqld, 為了看起來漂亮, 也可以用 alfred 快速開啟想要測試的東西, 我決定留下 MAMP 包的 MySQL, 但是可能因為之前亂更新或是做了什麼蠢事, 我的 USER_PRIVILEGES 裡面 竟然只剩下 ''@'localhost' 這樣奇怪的帳號, 於是我想做什麼事情都會被系統說權限不足。

經過大約三十分鐘左右我才解決了這個問題, 所以留下一點小記錄, 以備不時之需。
  1. 先停止 mysqld
  2. 執行 mysqld --skip-grant-tables
  3. 在 MySQL shell 裡面執行下面三個指令:
    1. UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
    2. FLUSH PRIVILEGES;
    3. GRANT ALL ON *.* TO 'root'@'localhost';
大概就是這樣, 主要就是利用先略過權限的表格, 然後登入之後進行更新。

打完收工, 騙一篇好久沒更新的網誌。

留言