Mysql

MySQL root 問題(root 使用者訪問被拒絕)

  • January 11, 2021

我的 MySQL (5.5) root 使用者遇到了一些非常奇怪的問題。我試圖允許外部主機訪問 root 使用者,但似乎我的 root@localhost 沒有本地數據庫的“GRANT OPTION”!我認為此時的問題是由於我認為我有兩個 root@localhost 使用者,兩個使用者都有不同的授權規則,但我不知道如何重新安裝。

我已經嘗試刪除root使用者並重新創建它(我認為),重置root使用者密碼(修改mysql數據庫本身)

我無法使用我一直指定的密碼進入 root 帳戶,而是使用備用密碼,我什至不知道我是如何獲得的……這個備用使用者似乎沒有完整的root 權限,但仍稱為 root。

–下面發布的解決方案–

找到了解決方案——這是由於將 MySQL 從 MySQL 5.1 更新到 MySQL 5.5 並隨之移動身份驗證模式(MySQL 數據庫本身)而引起的。由於此架構的核心更新將其與 5.5 數據庫一起使用,根本無法工作,導致兩個主要錯誤: 無法授予權限,因為 root Mysql 使用者已刪除

您可以在禁用身份驗證的情況下啟動 MySQL。從那裡您可以創建/刪除 MySQL 的管理帳戶。

您可以在 MySQL 文件中找到詳細資訊:http: //dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html

  1. 關閉 MySQL
  2. 使用以下命令啟動 MySQL:mysqld --skip-grant-tables --skip-networking
  3. 在 mysql 中執行:
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';

對於較新的 MySQL 版本

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
GRANT ALL PRIVILEGES ON \*.\* TO 'root'@'localhost' WITH GRANT OPTION;
  1. 關閉 MySQL
  2. 像往常一樣啟動 MySQL。

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