cari

Rumah  >  Soal Jawab  >  teks badan

Akses ditolak untuk pengguna 'root'@'localhost' (menggunakan kata laluan: ya) - Tiada kebenaran?

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粉136356287P粉136356287415 hari yang lalu1125

membalas semua(2)saya akan balas

  • P粉343141633

    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/

    balas
    0
  • P粉807471604

    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;

    balas
    0
  • Batalbalas