User 'root'@'localhost' 拒絕存取 - 權限不足?
P粉826283529
P粉826283529 2023-08-07 14:35:51
0
2
504
<p>我持續收到這個錯誤。 <br /><br />我正在使用MySQL Workbench,從我的發現是root用戶的權限似乎是空的。根本沒有任何權限。 <br /><br />我正在遇到root用戶在多個平台上的問題,而且這個問題已經持續了很長時間。 <br /><br />root@127.0.0.1似乎具有很多權限,但是當我作為root用戶登錄時,它只是將權限分配給本地計算機- 本地計算機沒有權限。 <br /><br />我已經嘗試了FLUSH HOSTS,FLUSH PRIVILEGES等方法,但是都沒有成功。 <br /><br />我需要root使用者的存取權限。我感到非常沮喪,因為當我在周圍的人看起來期望我有訪問權限時,我實際上沒有訪問權限,所以我不能進入命令行或做任何事情,並且無法授予自己任何權限。 <br /><br />當運行SHOW GRANTS FOR root時,我得到了以下返回:</p><p><code></code></p> <blockquote> <p>Error Code: 1141. There is no such grant defined for user 'root' on host '%'</p> </blockquote><p><br /></p>
P粉826283529
P粉826283529

全部回覆(2)
P粉864594965

如果在 MySQL 5.7. 中有這個問題:

Access denied for user 'root'@'localhost'

因為 MySQL 5.7 預設允許透過 socket 連接,這意味著您只需使用管理員權限連接到 MySQL。

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

t然後就看到

+------------------+-------------------------------------------+-----------------------+-----------+
| 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)

允許使用管理員權限連線並輸入密碼,然後透過命令更新表中的值:

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粉647504283

使用 resetting 密碼的說明 - 但不是重設密碼,而是將一個記錄強制插入到 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學習者快速成長!