Wie man das MySQL-Root-Passwort prüft, ändert und zurücksetzt (Komplette Anleitung für Einsteiger)

目次

1. Wie man das MySQL-Root-Passwort prüft

Das MySQL-Root-Passwort ist ein kritisches Element in der Datenbankverwaltung. Besonders für Anfänger kann man sich jedoch fragen: „Ich kenne das Passwort nicht“ oder „Wo finde ich das Anfangspasswort?“ In diesem Abschnitt erklären wir konkrete Methoden, um das MySQL-Root-Passwort zu überprüfen.

Wie man das Anfangspasswort prüft

Bei MySQL 5.7 und neuer wird ein Anfangspasswort für den Root‑Benutzer während der Installation automatisch erzeugt und in der Logdatei protokolliert. Folgen Sie den nachstehenden Schritten, um dieses temporäre Passwort zu prüfen.

Schritte

  1. Öffnen Sie ein Terminal (oder die Eingabeaufforderung), um die MySQL‑Logdatei zu prüfen.
  2. Führen Sie den folgenden Befehl aus:
    sudo grep 'temporary password' /var/log/mysqld.log
    
  1. Die Ausgabe enthält etwa Folgendes:
    [Note] A temporary password is generated for root@localhost: EaGapdplN0*m
    
  1. In diesem Fall ist EaGapdplN0*m das Anfangspasswort für den Root‑Benutzer.

Wichtige Hinweise

  • Das temporäre Passwort kann nur einmal verwendet werden. Nach dem Einloggen müssen Sie es sofort ändern.
  • Wenn die Logdatei nicht gefunden wird oder Sie einen Berechtigungsfehler erhalten, führen Sie den Befehl mit administrativen Rechten aus.

Wie man das aktuelle Passwort prüft

Aus Sicherheitsgründen stellt MySQL keinen Befehl oder keine Methode bereit, um ein vorhandenes Root‑Passwort direkt anzuzeigen. Wenn Sie das aktuelle Passwort nicht kennen, lesen Sie den Abschnitt „Was tun, wenn Sie das Root‑Passwort vergessen haben“ und erwägen Sie, es zurückzusetzen.

2. Wie man das MySQL-Root-Passwort ändert

Das regelmäßige Ändern des MySQL-Root-Passworts ist wichtig, um die Sicherheit zu gewährleisten. In diesem Abschnitt erklären wir ausführlich, wie Sie das Passwort mit den aktuellen Root‑Zugangsdaten ändern.

Grundlegende Schritte zum Ändern des Passworts

Befolgen Sie diese Schritte, um sich bei MySQL anzumelden und ein neues Passwort festzulegen.

Schritte

  1. Öffnen Sie ein Terminal oder die Eingabeaufforderung und geben Sie den folgenden Befehl ein, um sich bei MySQL anzumelden:
    mysql -u root -p
    
  • -u root gibt an, dass der Benutzername root ist.
  • -p fordert Sie auf, das Passwort beim Anmelden einzugeben.
  1. Führen Sie den folgenden SQL‑Befehl aus, um das Passwort zu ändern:
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPassword';
    
  1. Laden Sie die Privilegieninformationen neu, indem Sie Folgendes ausführen:
    FLUSH PRIVILEGES;
    
  1. Nachdem Sie die Befehle erfolgreich ausgeführt haben, melden Sie sich von MySQL ab:
    exit
    

Wichtige Hinweise

  • Verwenden Sie ein starkes Passwort
  • Wir empfehlen, dass Ihr neues Passwort die folgenden Elemente enthält: Beispiel: MyS3cure!2025

    • Groß- und Kleinbuchstaben
    • Zahlen
    • Symbole (z. B. @, #, $, !)
    • Mindestens 12 Zeichen Länge
    • Seien Sie sich aktiver Sitzungen bewusst
    • Wenn Sie das Passwort während einer MySQL‑Sitzung ändern, müssen Sie sich möglicherweise erneut verbinden.
    • Überprüfen Sie die Benutzerprivilegien
    • Stellen Sie sicher, dass der Root‑Benutzer über die entsprechenden Privilegien verfügt. Wenn Sie das Passwort nicht ändern können, wenden Sie sich an Ihren Systemadministrator.

Häufige Probleme beim Ändern des Passworts

Nicht mehr einloggen können nach dem Ändern des Passworts

  • Ursache: Möglicherweise haben Sie den Befehl FLUSH PRIVILEGES nicht ausgeführt.
  • Lösung: Melden Sie sich erneut an und führen Sie FLUSH PRIVILEGES; aus.

Das neue Passwort erfüllt die Sicherheitsrichtlinien nicht

  • Ursache: MySQL hat möglicherweise eine strenge Passwort‑Richtlinie aktiviert.
  • Lösung: Setzen Sie ein stärkeres Passwort oder passen Sie die Richtlinieneinstellungen bei Bedarf an.

3. Was tun, wenn Sie das Root‑Passwort vergessen haben

Wenn Sie das MySQL-Root‑Passwort vergessen, können Sie nicht mehr mit den üblichen Anmeldemethoden auf die Datenbank zugreifen. Durch das vorübergehende Deaktivieren des MySQL‑Authentifizierungssystems können Sie das Passwort jedoch zurücksetzen. In diesem Abschnitt erläutern wir die einzelnen Schritte im Detail.

Schritte zum Zurücksetzen des Root‑Passworts

1. MySQL‑Dienst stoppen

Zuerst stoppen Sie den MySQL‑Dienst, um die Datenbank vorübergehend herunterzufahren. Verwenden Sie den folgenden Befehl:

sudo systemctl stop mysqld
  • Wenn der Befehl erfolgreich ausgeführt wird, stoppt der MySQL‑Dienst.

2. MySQL mit deaktivierter Authentifizierung starten

Starten Sie MySQL mit der Option --skip-grant-tables, um die Authentifizierung zu deaktivieren.

sudo mysqld_safe --skip-grant-tables &
  • Dieser Befehl startet MySQL, ohne die Authentifizierung zu erzwingen.
  • Wichtig: Da die Sicherheit in diesem Modus stark reduziert ist, stellen Sie sicher, dass keine anderen Benutzer auf das System zugreifen können, während Sie diesen Vorgang ausführen.

3. Root-Passwort zurücksetzen

Melden Sie sich bei MySQL an, während die Authentifizierung deaktiviert ist, und setzen Sie das Passwort zurück.

  1. Bei MySQL anmelden:
    mysql -u root
    
  1. Setzen Sie ein neues Root-Passwort mit dem folgenden Befehl:
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPassword';
    
  1. Laden Sie die Privilegien-Informationen neu:
    FLUSH PRIVILEGES;
    
  1. Nachdem Sie die Arbeit abgeschlossen haben, melden Sie sich von MySQL ab:
    exit
    

4. MySQL-Dienst neu starten

Starten Sie den MySQL-Dienst neu, um die normale Authentifizierung wieder zu aktivieren:

sudo systemctl restart mysqld

Nach dem Neustart melden Sie sich bei MySQL mit dem neu gesetzten Passwort an.

Wichtige Hinweise

  • Sicherheit wahren
  • Während Sie die Option --skip-grant-tables verwenden, ist MySQL völlig ungeschützt. Führen Sie diesen Vorgang schnell aus und vermeiden Sie unnötige Risiken.
  • Auswirkungen auf andere Benutzer
  • Diese Methode ist für das Root-Konto vorgesehen. Stellen Sie sicher, dass andere Benutzer nicht betroffen sind.

Fehlersuche

mysqld_safe Befehl nicht gefunden

  • Ursache: Auf einigen Linux-Distributionen ist mysqld_safe möglicherweise nicht installiert.
  • Lösung: Starten Sie MySQL direkt mit:
    sudo mysqld --skip-grant-tables &
    

Nach dem Zurücksetzen des Passworts immer noch nicht einloggen können

  • Ursache: MySQL hat die aktualisierten Privilegien-Informationen möglicherweise nicht neu geladen.
  • Lösung: Melden Sie sich erneut an und führen Sie FLUSH PRIVILEGES; aus.

4. Best Practices zur Stärkung der MySQL-Sicherheit

Die ordnungsgemäße Verwaltung des MySQL-Root-Passworts ist wichtig, aber allein nicht ausreichend. Um eine Datenbank sicher zu betreiben, sollten zusätzliche Sicherheitsmaßnahmen implementiert werden. Dieser Abschnitt stellt praktische Methoden zur Verbesserung der MySQL-Sicherheit vor.

Ein starkes Passwort festlegen

Die Sicherheit von Datenbanken hängt stark von der Passwortstärke ab. Befolgen Sie diese Richtlinien, wenn Sie ein starkes Passwort erstellen.

Richtlinien zur Passworterstellung

  • Länge: Mindestens 12 Zeichen
  • Zeichenarten: Eine Kombination aus Großbuchstaben, Kleinbuchstaben, Zahlen und Symbolen
  • Beispiel: 2#SecureMySQL_2025!

Sicherheitsrichtlinien anwenden

MySQL ermöglicht die Konfiguration von Passwortvalidierungsrichtlinien. Verwenden Sie den folgenden Befehl, um die aktuelle Richtlinie zu prüfen:

SHOW VARIABLES LIKE 'validate_password%';

Falls nötig, ändern Sie die Richtlinie wie folgt:

SET GLOBAL validate_password_policy = 'MEDIUM';
SET GLOBAL validate_password_length = 12;

Unnötige Konten und Daten entfernen

Unnötige Konten prüfen und löschen

Während der Installation kann MySQL standardmäßige Testkonten oder anonyme Benutzer anlegen. Diese können Sicherheitsrisiken darstellen und sollten entfernt werden, wenn sie nicht benötigt werden.

  1. Aktuelle Benutzerliste prüfen:
    SELECT user, host FROM mysql.user;
    
  1. Unnötige Benutzer löschen:
    DROP USER 'username'@'hostname';
    

Testdatenbank löschen

Entfernen Sie die während der Installation erstellte Testdatenbank:

DROP DATABASE test;

Zugriff auf das Root-Konto einschränken

Die Beschränkung des Zugriffs auf das Root-Konto erhöht die Sicherheit.

Nur lokalen Zugriff zulassen

Standardmäßig kann das Root-Konto Remote-Verbindungen zulassen. Beschränken Sie es auf nur lokalen Zugriff:

UPDATE mysql.user SET host = 'localhost' WHERE user = 'root';
FLUSH PRIVILEGES;

Separates Administratorkonto erstellen

Anstatt das Root-Konto direkt zu verwenden, wird empfohlen, ein dediziertes Administratorkonto für bestimmte Aufgaben zu erstellen.

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'StrongAdminPassword';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;

Das Prinzip der minimalen Rechte anwenden

Verbessern Sie die Sicherheit, indem Sie jedem Benutzer nur die minimal erforderlichen Privilegien zuweisen.

Vorhandene Privilegien prüfen

SHOW GRANTS FOR 'username'@'hostname';

Unnötige Privilegien entziehen

REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'hostname';

MySQL-Sicherheitskonfiguration automatisieren

MySQL stellt den Befehl mysql_secure_installation zur Verfügung, um die Sicherheitskonfiguration zu vereinfachen. Durch das Ausführen dieses Befehls können Sie:

  • Testkonten und -datenbanken entfernen
  • Remote-Root-Anmeldung deaktivieren
  • Sicherheitsrichtlinien anwenden

Ausführungsbefehl

sudo mysql_secure_installation

Regelmäßige Backups durchführen

Im Rahmen der Sicherheitsverbesserung werden regelmäßige Datenbank-Backups dringend empfohlen. Dadurch können Sie Daten im Falle unerwarteter Probleme wiederherstellen.

Backup-Beispiele

  1. Alle Datenbanken sichern:
    mysqldump -u root -p --all-databases > backup.sql
    
  1. Eine bestimmte Datenbank sichern:
    mysqldump -u root -p database_name > database_name_backup.sql
    

5. Häufig gestellte Fragen (FAQ)

Im Folgenden finden Sie häufig gestellte Fragen und Antworten zur Verwaltung des MySQL-Root-Passworts und zur Sicherheitskonfiguration. Verwenden Sie diesen Abschnitt zur Fehlersuche und zur Lösung weiterer Probleme.

Q1. Ich kann das anfängliche MySQL-Passwort nicht im Log finden. Was soll ich tun?

A1:
In MySQL 5.7 und später wird das anfängliche Passwort in der Logdatei (typischerweise /var/log/mysqld.log) aufgezeichnet. Wenn die Logdatei jedoch nicht gefunden wird oder gelöscht wurde, versuchen Sie Folgendes:

  1. Eine Neuinstallation von MySQL erzeugt ein neues temporäres Passwort.
  2. Wenn Sie sich immer noch nicht anmelden können, lesen Sie „Was tun, wenn Sie das Root-Passwort vergessen haben“ und setzen Sie das Passwort zurück.

Q2. Können Benutzer außer root ihre Passwörter mit demselben Verfahren ändern?

A2:
Ja, Benutzer außer root können ihre Passwörter mit derselben Methode ändern. Allerdings sind dafür administrative Privilegien für diesen Benutzer erforderlich. Verwenden Sie den folgenden Befehl:

ALTER USER 'username'@'hostname' IDENTIFIED BY 'NewStrongPassword';

Q3. Der Befehl mysqld_safe wurde nicht gefunden. Was soll ich tun?

A3:
Auf einigen Linux-Distributionen ist mysqld_safe möglicherweise nicht installiert. In diesem Fall können Sie MySQL mit der Option --skip-grant-tables über den Befehl mysqld starten:

sudo mysqld --skip-grant-tables &

Allerdings deaktiviert dies die Authentifizierung, sodass dieselben Sicherheitsvorkehrungen gelten.

Q4. Ich habe das Passwort geändert, kann mich aber immer noch nicht anmelden. Warum?

A4:
Mögliche Ursachen sind folgende:

  1. Privileg-Informationen wurden nicht aktualisiert: Nach dem Ändern des Passworts führen Sie den folgenden Befehl aus, um die Privilegien zu aktualisieren:
    FLUSH PRIVILEGES;
    
  1. Eingabefehler: Stellen Sie sicher, dass Groß- und Kleinbuchstaben sowie Sonderzeichen im neuen Passwort korrekt eingegeben werden.

  2. Passwortrichtlinien-Einschränkungen: MySQL kann schwache Passwörter basierend auf seiner Sicherheitsrichtlinie ablehnen. Überprüfen Sie die Richtlinieneinstellungen und verwenden Sie ein stärkeres Passwort.

Q5. Gibt es eine Möglichkeit, die MySQL-Sicherheit auf einmal zu stärken?

A5:
Um die MySQL-Sicherheitseinstellungen effizient zu konfigurieren, wird empfohlen, den Befehl mysql_secure_installation zu verwenden. Dieser Befehl führt automatisch Folgendes aus:

  • Entfernt Testbenutzer und -datenbanken
  • Deaktiviert die Remote-Root-Anmeldung
  • Setzt eine starke Passwortrichtlinie um

Führen Sie den Befehl wie folgt aus:

sudo mysql_secure_installation

Q6. Unterscheidet sich die Passwortverwaltung je nach MySQL-Version?

A6:
Ja, die Methode zur Verwaltung des Root-Passworts kann je nach MySQL-Version variieren. Die wichtigsten Unterschiede sind:

  • MySQL 5.7 und später: Ein temporäres Passwort wird automatisch erzeugt und in der Logdatei aufgezeichnet.
  • MySQL 5.6 und früher: Das anfängliche Passwort kann leer sein (kein Passwort gesetzt).

Um Ihre MySQL-Version zu prüfen, verwenden Sie den folgenden Befehl:

mysql --version

Q7. Wie kann ich Remote-Verbindungen für den Root-Benutzer zulassen?

A7:
Aus Sicherheitsgründen wird der Fernzugriff auf root nicht empfohlen. Wenn es jedoch notwendig ist, können Sie ihn mit den folgenden Befehlen aktivieren:

  1. Fernzugriff erlauben:
    UPDATE mysql.user SET host = '%' WHERE user = 'root';
    
  1. Privilegieninformationen neu laden:
    FLUSH PRIVILEGES;
    

Wichtig:
Wenn Sie den Fernzugriff erlauben, stellen Sie sicher, dass Sie zusätzliche Sicherheitsmaßnahmen wie Firewall-Regeln und IP‑Einschränkungen implementieren.

Q8. Können Sie kurz die Schritte zum Zurücksetzen des root-Passworts erklären?

A8:

  1. Stoppen Sie den MySQL‑Dienst:
    sudo systemctl stop mysqld
    
  1. Starten Sie MySQL mit deaktivierter Authentifizierung:
    sudo mysqld_safe --skip-grant-tables &
    
  1. Setzen Sie das Passwort zurück:
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPassword';
    FLUSH PRIVILEGES;
    
  1. Starten Sie den MySQL‑Dienst neu:
    sudo systemctl restart mysqld