it-swarm.com.de

MySQL - ERROR 1045 - Zugriff verweigert

In gewisser Weise habe ich diese Fehlermeldung erhalten, wenn ich versuche, über die Befehlszeile auf MySQL zuzugreifen:

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

Ich habe versucht, mit diesem HowTo das Passwort ohne Erfolg zurückzusetzen.

Ich habe mysql completley deinstalliert und neu installiert, werde aber trotzdem nach einem Passwort gefragt. Ich habe keine Ahnung, warum das so ist!

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

Umgebung

Fedora Core 10, Full Root Access, Apache und PHP sind installiert

Danke für jede Hilfe !!

BEARBEITEN

An alle, die sich ein paar Stunden "Bluthusten" ersparen möchten - wenn Sie MySQl deinstallieren, löschen Sie alles, was übrig bleibt. Wenn Sie dies nicht tun, wird es niemals eine FRISCHE Installation sein.

41
Abs

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

  1. Stoppen Sie MySQL
  2. Starten Sie ihn manuell mit der Option skip-grant-tables: mysqld_safe --skip-grant-tables

  3. Öffnen Sie nun ein neues Terminalfenster und führen Sie den MySQL-Client aus: 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. Leeren Sie die Berechtigungen mit diesem MySQL-Befehl: FLUSH PRIVILEGES;

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

(Vielleicht ist das nicht das, was du brauchst, Abs, aber ich denke, es könnte nützlich sein, wenn Leute in Zukunft über diese Frage stolpern.)

80
David Z

Versuchen Sie sich ohne Passwort zu verbinden:

mysql -u root

Ich glaube, dass die anfängliche Voreinstellung kein Passwort für den Root-Account ist (der natürlich so schnell wie möglich geändert werden sollte).

13
Chad Birch

verwenden Sie diesen Befehl, um die mögliche Ausgabe zu überprüfen

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

ausgabe 

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 Benutzer darf sich admin nicht von einem anderen Host aus anmelden, obwohl Sie die Berechtigung erteilt haben. Der Grund ist, dass der Benutzer admin nicht durch ein Passwort identifiziert wird.
  2. Erteilen Sie den Benutzer admin erneut mit dem Befehl GRANT

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

dann überprüfen Sie die GRANT-LISTE, die ausgegeben wird wie sein 

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 dem gewünschten Benutzer, z. B. dem Benutzer 'admin', die Anmeldung erlaubt sein muss, verwenden Sie den GRANT-Befehl und führen Sie den Befehl aus.

Nun sollte der Benutzer sich anmelden dürfen.

4
vigremrajesh

Das aktuelle Root-Passwort muss leer sein ..__ Geben Sie anschließend unter "Neues Root-Passwort" Ihr Passwort ein und bestätigen Sie.

1
princetailor

Ich konnte keine Verbindung zu MySql Administrator herstellen. Ich habe das Problem behoben, indem ich einen anderen Benutzer erstellt und alle Berechtigungen zugewiesen habe.

Ich habe mich mit diesem neuen Benutzer angemeldet und es hat funktioniert.

0
Mysql user
  1. Gehen Sie zur MySQL-Konsole
  2. Geben Sie use mysql ein. 
  3. UPDATE mysql.user SET Password = PASSWORD ('') WHERE User = 'root' FLUSH PRIVILEGES; Exit PASSWORD ('') muss leer sein
  4. Dann gehen Sie zu wamp/apps/phpmyadmin ../ config.inc.php
  5. Find $ cfg ['Servers'] ['$ I'] ['password'] = 'root';
  6. Ersetzen Sie das ["Passwort"] durch ["Ihr altes Passwort"]
  7. Speicher die Datei 
  8. Starten Sie alle Dienste neu und gehen Sie zu localhost/phpmyadmin
0
user4713247

Ich hatte den gleichen Fehler, aber es lag daran, dass password_expired wurde auf Y gesetzt. Sie können dieses Problem beheben, indem Sie den gleichen Ansatz wie die derzeit akzeptierte Antwort verwenden, aber stattdessen die MySQL-Abfrage ausführen:

UPDATE mysql.user SET password_expired = 'N' WHERE User='root';
0
Brandon Mintern