52 Stimmen

MySQL - ERROR 1045 - Zugriff verweigert

Irgendwie habe ich es geschafft, diesen Fehler zu bekommen, wenn ich versuche, über die Kommandozeile auf MySQL zuzugreifen:

[root@localhost ~]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Ich habe versucht, das Kennwort mit Hilfe dieses HowTo zurückzusetzen, ohne Erfolg.

Ich habe mysql komplett deinstalliert und neu installiert, aber ich werde immer noch nach einem Passwort gefragt. Ich habe keine Ahnung, warum dies der Fall ist!

Kann mir bitte jemand helfen, eine Standardinstallation von MySQL zu erhalten.

Umwelt

Fedora Core 10, voller Root-Zugriff, Apache und PHP installiert

Vielen Dank für jede Hilfe!!

エディトリアル

Für alle, die sich ein paar Stunden "Bluthusten" ersparen möchten - wenn Sie MySQl deinstallieren, löschen Sie alles, was zurückbleibt. Wenn Sie dies nicht tun, wird es nie eine FRISCHE Installation sein.

93voto

David Z Punkte 121773

Wenn Sie tatsächlich ein Root-Passwort festgelegt haben und es nur verloren/vergessen haben:

  1. MySQL anhalten

  2. Starten Sie ihn manuell mit der Option skip-grant-tables neu: mysqld_safe --skip-grant-tables

  3. Öffnen Sie nun ein neues Terminalfenster und starten Sie den MySQL-Client: mysql -u root

  4. Setzen Sie das Root-Passwort manuell mit diesem MySQL-Befehl zurück: UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root'; Wenn Sie MySQL 5.7 verwenden (überprüfen Sie dies mit mysql --version im Terminal), lautet der Befehl:

    UPDATE mysql.user SET authentication_string=PASSWORD('password')  WHERE  User='root';
  5. Spülen Sie die Berechtigungen mit diesem MySQL-Befehl: FLUSH PRIVILEGES;

Von http://www.tech-faq.com/reset-mysql-password.shtml

(Vielleicht ist es nicht das, was Sie brauchen, Abs, aber ich denke, es könnte für Leute nützlich sein, die in Zukunft über diese Frage stolpern)

14voto

Chad Birch Punkte 70946

Versuchen Sie, die Verbindung ohne Passwort herzustellen:

mysql -u root

Ich glaube, die anfängliche Voreinstellung ist kein Passwort für das Root-Konto (was natürlich so bald wie möglich geändert werden sollte).

5voto

vigremrajesh Punkte 51

Verwenden Sie diesen Befehl, um die möglichen Ausgaben zu überprüfen

mysql> select user,host,password from mysql.user;

sortie

mysql> select user,host,password from mysql.user;
+-------+-----------------------+-------------------------------------------+
| user  | host                  | password                                  |
+-------+-----------------------+-------------------------------------------+
| root  | localhost             | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root  | localhost.localdomain | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root  | 127.0.0.1             | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| admin | localhost             | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| admin | %                     |                                           |
+-------+-----------------------+-------------------------------------------+
5 rows in set (0.00 sec)
  1. In diesem Fall ist es dem Benutzer admin nicht erlaubt, sich von einem anderen Host aus anzumelden, obwohl Sie die Erlaubnis dazu erteilt haben. Der Grund dafür ist, dass der Benutzer admin nicht durch ein Passwort identifiziert wird.
  2. Gewähren Sie dem Benutzer admin mit Passwort erneut den Befehl GRANT

    mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED by 'password'

dann überprüfen Sie die GRANT LIST, die Ausgabe wird wie seine aussehen

mysql> select user,host,password from mysql.user;

+-------+-----------------------+-------------------------------------------+
| user  | host                  | password                                  |
+-------+-----------------------+-------------------------------------------+
| root  | localhost             | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root  | localhost.localdomain | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root  | 127.0.0.1             | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| admin | localhost             | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| admin | %                     | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
+-------+-----------------------+-------------------------------------------+
5 rows in set (0.00 sec)

Wenn der gewünschte Benutzer, z. B. der Benutzer "admin", sich anmelden darf, verwenden Sie einmal den Befehl GRANT und führen Sie den Befehl aus.

Jetzt sollte sich der Benutzer anmelden können.

2voto

princetailor Punkte 21

Das aktuelle Root-Passwort muss leer sein. Geben Sie dann unter "neues Root-Passwort" Ihr Passwort ein und bestätigen Sie es.

1voto

user4713247 Punkte 15
  1. Gehen Sie zur mysql-Konsole
  2. Geben Sie mysql verwenden ein;
  3. UPDATE mysql.user SET Password= PASSWORD ('') WHERE User='Root' PRIVILEGIEN LEEREN; exit PASSWORD ('') muss leer sein
  4. Gehen Sie dann zu wamp/apps/phpmyadmin../config.inc.php
  5. Finden Sie $cfg ['Servers']['$I']['password']='Root';
  6. Ersetzen Sie das ['Passwort'] durch ['Ihr altes Passwort'].
  7. Speichern Sie die Datei
  8. Starten Sie alle Dienste neu und gehen Sie zu localhost/phpmyadmin

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X