使用者'root'@'localhost'的存取被拒絕(使用密碼:是)- 沒有權限?
P粉136356287
P粉136356287 2023-10-09 19:39:30

我不斷收到此錯誤。

我正在使用 mySQL Workbench,我發現 root 的架構權限為空。根本沒有任何特權。

我在使用我的伺服器的各個平台上遇到了問題,而且這是一個突然出現的問題。

[email protected] 顯然有很多訪問權限,但我是這樣登入的,但它只是分配給本地主機 - 本地主機沒有權限。

我做了一些事情,像是 FLUSH HOSTSFLUSH PRIVILEGES 等 但沒有從該方法或互聯網上取得成功。

如何才能恢復 root 存取權?我覺得這很令人沮喪,因為當我環顧四周時,人們希望您“有權訪問”,但我沒有訪問權限,所以我無法進入命令行或任何東西,並且GRANT 自己做任何事情。

運行 SHOW GRANTS FOR root 這是我得到的回報:

錯誤代碼:1141。沒有為使用者“root”定義此類授權 主機“%”


P粉136356287
P粉136356287

全部回覆(2)
P粉343141633

如果您在 MySql 5.7. 中遇到相同的問題:

Access denied for user 'root'@'localhost'

這是因為MySql 5.7預設允許使用socket連接,這意味著你只需使用sudo mysql連接即可。如果你執行sql:

SELECT user,authentication_string,plugin,host FROM mysql.user;

然後你就會看到它:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *497C3D7B50479A812B89CD12EC3EDA6C0CB686F0 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

要允許使用 root 和密碼進行連接,請使用命令更新表中的值:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Current-Root-Password';
FLUSH PRIVILEGES;

然後再次執行 select 命令,您將看到它已更改:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *2F2377C1BC54BE827DC8A4EE051CBD57490FB8C6 | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *497C3D7B50479A812B89CD12EC3EDA6C0CB686F0 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

就是這樣。您可以在執行並完成 sudo mysql_secure_installation 指令後執行此程序。

對於 mariadb,請使用

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('manager');

設定密碼。 更多資訊請見 https://mariadb.com/kb/en/set-password/

P粉807471604

使用重設root密碼的說明 - 但我們不會重設 root 密碼,而是將強制將一筆記錄插入 mysql.user 表

在初始化檔案中,使用它來取代

INSERT INTO mysql.user (Host, User, Password) VALUES ('%', 'root', password('YOURPASSWORD'));
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!