Akses dinafikan untuk Pengguna 'root'@'localhost' - Kebenaran tidak mencukupi?
P粉826283529
P粉826283529 2023-08-07 14:35:51
0
2
519
<p>Saya terus mendapat ralat ini. <br /><br />Saya menggunakan MySQL Workbench dan daripada apa yang saya dapati kebenaran pengguna root nampaknya kosong. Tiada kebenaran sama sekali. <br /><br />Saya menghadapi masalah dengan root pada berbilang platform dan ini telah berlaku untuk masa yang lama. <br /><br />root@127.0.0.1 nampaknya mempunyai banyak kebenaran, tetapi apabila saya log masuk sebagai root, ia hanya memberikan kebenaran kepada komputer tempatan - komputer tempatan tidak mempunyai kebenaran. <br /><br />Saya telah mencuba FLUSH HOSTS, FLUSH PRIVILEGES dan kaedah lain, tetapi tiada satu pun daripada mereka yang berjaya. <br /><br />Saya memerlukan akses root. Saya sangat kecewa kerana apabila saya berada di sekeliling orang yang nampaknya mengharapkan saya mempunyai akses, saya sebenarnya tidak mempunyai akses, jadi saya tidak boleh masuk ke baris arahan atau melakukan apa-apa dan tidak boleh memberikan diri saya sebarang kebenaran . <br /><br />Apabila menjalankan SHOW GRANTS FOR root, saya mendapat pulangan berikut: </p><p><code></code></p> <blockquote> <p>Kod Ralat: 1141. Tiada geran sedemikian ditakrifkan untuk 'root' pengguna pada hos '%'</p> </blockquote><p><br /></p>
P粉826283529
P粉826283529

membalas semua(2)
P粉864594965

Jika anda mempunyai masalah ini dalam MySQL 5.7.+:

Access denied for user 'root'@'localhost'

Oleh kerana MySQL 5.7 membenarkan sambungan melalui soket secara lalai, ini bermakna anda hanya perlu menyambung ke MySQL dengan keistimewaan pentadbir.

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

t Kemudian anda lihat

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

Benarkan sambungan dengan hak pentadbir dan masukkan kata laluan, kemudian kemas kini nilai dalam jadual melalui arahan:

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

Kemudian jalankan arahan pilih sekali lagi dan anda akan melihat ia telah berubah:

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

Maka ini dia. Selepas melengkapkan perintah sudo mysql_secure_installation, anda boleh menjalankan prosedur berikut.

Untuk mariadb, gunakan:


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

Maka tiba masanya untuk menetapkan kata laluan. Untuk maklumat lanjut, lihat https://mariadb.com/kb/en/set-password/.

P粉647504283

Arahan untuk menggunakan menetapkan semula kata laluan - tetapi bukannya menetapkan semula kata laluan, paksa masukkan rekod ke dalam jadual mysql.user


INSERT INTO mysql.user (Host, User, Password) VALUES ('%', 'root', password('YOURPASSWORD'));
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan