Akses ditolak untuk pengguna 'root'@'localhost' (menggunakan kata laluan: ya) - Tiada kebenaran?
P粉136356287
P粉136356287 2023-10-09 19:39:30
0
2
1160

Saya terus mendapat ralat ini.

Saya menggunakan mySQL Workbench dan saya mendapati bahawa kebenaran skema root kosong. Tidak ada keistimewaan sama sekali.

Saya menghadapi masalah pada pelbagai platform yang saya gunakan pelayan saya, dan ini adalah masalah yang timbul secara tiba-tiba.

root@127.0.0.1 Nampaknya terdapat banyak akses, tetapi saya log masuk seperti ini, tetapi ia hanya diberikan kepada localhost - localhost tidak mempunyai kebenaran.

Saya melakukan beberapa perkara seperti FLUSH HOSTSFLUSH PRIVILEGES dsb. Tetapi tiada kejayaan dari kaedah itu atau dari internet.

Bagaimana saya boleh memulihkan akses root? Saya rasa ini mengecewakan kerana apabila saya melihat sekeliling orang mengharapkan anda "mempunyai akses" tetapi saya tidak mempunyai akses jadi saya tidak boleh masuk ke baris arahan atau apa-apa dan GRANT melakukan apa-apa sendiri.

Lari SHOW GRANTS FOR root Inilah balasan yang saya dapat:

Kod ralat: 1141. Tiada kebenaran sedemikian ditakrifkan untuk 'root' pengguna Hos "%"


P粉136356287
P粉136356287

membalas semua(2)
P粉343141633

Jika anda menghadapi masalah yang sama dalam MySql 5.7.+:

Access denied for user 'root'@'localhost'

Ini kerana MySql 5.7 membenarkan sambungan soket secara lalai, yang bermaksud anda hanya perlu menyambung menggunakan sudo mysql. Jika anda menjalankan sql:

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

Kemudian anda akan melihatnya:

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

Untuk membenarkan sambungan menggunakan akar dan kata laluan, kemas kini nilai dalam jadual menggunakan 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)

Itu sahaja. Anda boleh menjalankan proses ini selepas menjalankan dan melengkapkan arahan sudo mysql_secure_installation.

Untuk mariadb, gunakan

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

Tetapkan kata laluan. Untuk maklumat lanjut sila layari https://mariadb.com/kb/en/set-password/

P粉807471604

Arahan untuk menetapkan semula kata laluan root menggunakan - Tetapi daripada menetapkan semula kata laluan root, kami akan memaksa memasukkan rekod ke dalam jadual mysql.user

Dalam fail permulaan, gunakan ini sebagai ganti

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