我不斷收到此錯誤。
我正在使用 mySQL Workbench,我發現 root 的架構權限為空。根本沒有任何特權。
我在使用我的伺服器的各個平台上遇到了問題,而且這是一個突然出現的問題。
root@127.0.0.1 顯然有很多訪問權限,但我是這樣登入的,但它只是分配給本地主機 - 本地主機沒有權限。
我做了一些事情,像是 FLUSH HOSTS
、FLUSH PRIVILEGES
等
但沒有從該方法或互聯網上取得成功。
如何才能恢復 root 存取權?我覺得這很令人沮喪,因為當我環顧四周時,人們希望您“有權訪問”,但我沒有訪問權限,所以我無法進入命令行或任何東西,並且GRANT
自己做任何事情。
運行 SHOW GRANTS FOR root
這是我得到的回報:
錯誤代碼:1141。沒有為使用者“root”定義此類授權 主機“%”
P粉3431416332023-10-10 14:58:33
如果您在 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粉8074716042023-10-10 10:50:19
使用重設root密碼的說明 - 但我們不會重設 root 密碼,而是將強制將一筆記錄插入 mysql.user 表
在初始化檔案中,使用它來取代
INSERT INTO mysql.user (Host, User, Password) VALUES ('%', 'root', password('YOURPASSWORD')); GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;