MySQL Fehler: 'Zugriff verweigert für Benutzer 'root'@'localhost'

$ ./mysqladmin -u root -p 'redacted' Passwort eingeben:

mysqladmin: Verbindung zum Server auf 'localhost' fehlgeschlagen Fehler: 'Zugriff verweigert für Benutzer 'root'@'localhost' (mit Passwort: YES)'

Wie kann ich das Problem beheben?

Lösung
  1. Öffnen Sie & Bearbeiten Sie /etc/my.cnf oder /etc/mysql/my.cnf, abhängig von Ihrer Distribution.
  2. Fügen Sie skip-grant-tables unter [mysqld] hinzu.
  3. Starten Sie Mysql neu.
  4. Sie sollten jetzt in der Lage sein, sich mit dem folgenden Befehl mysql -u root -p bei mysql anzumelden
  5. Führen Sie mysql> flush privileges; aus.
  6. Setzen Sie ein neues Passwort mit ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
  7. Gehen Sie zurück zu /etc/my.cnf und entfernen/kommentieren Sie skip-grant-tables
  8. Starten Sie Mysql neu.
  9. Jetzt können Sie sich mit dem neuen Passwort mysql -u root -p anmelden.
Kommentare (20)

In Ihrer MySQL-Workbench können Sie in der linken Seitenleiste unter Management "Users and Privileges" auswählen, unter User Accounts auf root klicken, im rechten Bereich auf die Registerkarte "Account Limits" klicken, um die maximalen Abfragen, Updates usw. zu erhöhen, und dann auf die Registerkarte "Administrative Roles" klicken und die Kästchen ankreuzen, um dem Konto Zugriff zu gewähren. Ich hoffe, das hilft!

Kommentare (0)

Ich habe dies getan, um mein Root-Passwort bei der Ersteinrichtung von MySQL unter OSx festzulegen. Öffnen Sie ein Terminal.

sudo sh -c 'echo /usr/local/mysql/bin > /etc/paths.d/mysql'

Schließen Sie das Terminal und öffnen Sie ein neues Terminal. Und folgendes funktioniert unter Linux, um das root-Passwort zu setzen.

sudo /usr/local/mysql/support-files/mysql.server stop
sudo mysqld_safe --skip-grant-tables

(sudo mysqld_safe --skip-grant-tables : Das hat bei mir beim ersten Mal nicht funktioniert. Aber beim zweiten Versuch war es erfolgreich.)

Dann melden Sie sich bei MySQL an

mysql -u root

FLUSH PRIVILEGES;

Ändern Sie nun das Passwort:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';

Starten Sie MySQL neu:

sudo /usr/local/mysql/support-files/mysql.server stop
sudo /usr/local/mysql/support-files/mysql.server start
Kommentare (0)