suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Zugriff für Benutzer „root“@„localhost“ verweigert – Unzureichende Berechtigungen?

<p>Ich bekomme immer wieder diesen Fehler. <br /><br />Ich verwende MySQL Workbench und soweit ich herausgefunden habe, scheinen die Berechtigungen des Root-Benutzers leer zu sein. Überhaupt keine Berechtigungen. <br /><br />Ich habe Probleme mit Root auf mehreren Plattformen und das schon seit langer Zeit. <br /><br />root@127.0.0.1 scheint viele Berechtigungen zu haben, aber wenn ich mich als Root anmelde, werden die Berechtigungen nur dem lokalen Computer zugewiesen – der lokale Computer hat keine Berechtigungen. <br /><br />Ich habe FLUSH HOSTS, FLUSH PRIVILEGES und andere Methoden ausprobiert, aber keine davon war erfolgreich. <br /><br />Ich benötige Root-Zugriff. Ich bin so frustriert, denn wenn ich in der Nähe von Leuten bin, die scheinbar von mir Zugriff erwarten, habe ich in Wirklichkeit keinen Zugriff, kann also nicht in die Befehlszeile gehen oder irgendetwas tun und mir keine Berechtigungen erteilen . <br /><br />Wenn ich SHOW GRANTS FOR root ausführe, erhalte ich die folgende Rückgabe: </p><p><code></code></p> <blockquote> <p>Fehlercode: 1141. Für den Benutzer „root“ ist keine solche Berechtigung definiert Host '%'</p> </blockquote><p><br /></p>
P粉826283529P粉826283529473 Tage vor516

Antworte allen(2)Ich werde antworten

  • P粉864594965

    P粉8645949652023-08-08 13:46:16

    如果在 MySQL 5.7.+ 中有这个问题:

    Access denied for user 'root'@'localhost'

    因为 MySQL 5.7 默认允许通过 socket 连接,这意味着您只需使用管理员权限连接到 MySQL。

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

    t然后就看到

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

    允许使用管理员权限连接并输入密码,然后通过命令更新表中的值:

    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/。

    Antwort
    0
  • P粉647504283

    P粉6475042832023-08-08 09:12:02

    使用 resetting 密码的说明 - 但不是重置密码,而是将一个记录强制插入到 mysql.user 表中


    INSERT INTO mysql.user (Host, User, Password) VALUES ('%', 'root', password('YOURPASSWORD'));
    GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;

    Antwort
    0
  • StornierenAntwort