Rumah > Soal Jawab > teks badan
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 HOSTS
、FLUSH 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粉3431416332023-10-10 14:58:33
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粉8074716042023-10-10 10:50:19
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;