MySQL Benutzerpasswort ändern: ALTER USER Befehle (MySQL 5.7 / 8.0) + Root‑Wiederherstellung

目次

1. [Quick Answer] MySQL-Benutzer-Passwort-Änderungsbefehlsliste (Schnellste Lösung)

Der grundlegende Befehl, um das Passwort eines Benutzers in MySQL zu ändern, ist ALTER USER.
Diese Methode wird ab MySQL 5.7 empfohlen und wird in MySQL 8.0 auf dieselbe Weise verwendet.

1.1 Grundsyntax (am häufigsten verwendet)

ALTER USER 'username'@'localhost' IDENTIFIED BY 'newpassword';
  • username : der zu aktualisierende Zielbenutzername
  • localhost : der Client-Host (ein MySQL-Konto wird durch „Benutzername + Host“ identifiziert)
  • newpassword : das neue Passwort

Nach der Ausführung wird die Änderung sofort wirksam. In den meisten Fällen ist FLUSH PRIVILEGES; nicht erforderlich (ALTER USER aktualisiert die Privilegientabellen automatisch).

Häufige Fallstricke

  • Auch bei gleichem Benutzernamen werden @'localhost' und @'%' als unterschiedliche Konten behandelt
  • Symbole im Passwort müssen in einfache Anführungszeichen eingeschlossen werden

1.2 Ändern eines Remote‑Zugriffs‑Benutzers (%)

ALTER USER 'username'@'%' IDENTIFIED BY 'newpassword';

% bedeutet „beliebiger Host“.
Es wird häufig in Cloud‑Umgebungen oder für Benutzer verwendet, die von außen eine Verbindung herstellen dürfen.

Hinweise

  • Es ist sicherer, im Voraus mit SELECT User, Host FROM mysql.user; zu prüfen
  • Wenn Sie das Passwort für den falschen Host ändern, können Sie sich nicht mehr anmelden

1.3 Passwort ändern unter Angabe des Authentifizierungs‑Plugins (wichtig in 8.0)

In MySQL 8.0 ist das Standard‑Authentifizierungs‑Plugin caching_sha2_password.
Wenn Sie sich mit älteren Clients nicht verbinden können, setzen Sie das Plugin explizit.

ALTER USER 'username'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'newpassword';
  • mysql_native_password : Legacy‑Methode (legt Wert auf Kompatibilität)
  • caching_sha2_password : MySQL‑8.0‑Standard (empfohlen)

Typische Fehler

  • Ältere PHP‑Versionen oder Clients unterstützen das MySQL‑8.0‑Standard‑Plugin möglicherweise nicht
  • Die Annahme „Ich kann mich nicht anmelden“, ohne das Authentifizierungs‑Plugin zu prüfen

1.4 Wenn Sie einen Berechtigungsfehler erhalten

Fehlerbeispiel:

ERROR 1227 (42000): Access denied; you need (at least one of) the SYSTEM_USER privilege(s)

In diesem Fall hat der aktuell angemeldete Benutzer keine Berechtigung, die Änderung vorzunehmen.

Prüfen:

SHOW GRANTS FOR CURRENT_USER();

Führen Sie den Befehl als root oder als Benutzer mit ausreichenden Rechten aus.

1.5 Wie man nach dem Ändern verifiziert

SELECT User, Host, plugin FROM mysql.user WHERE User='username';
  • Überprüfen Sie das Authentifizierungs‑Plugin über die Spalte plugin
  • Der zuverlässigste Test ist, sich tatsächlich anzumelden und die Verbindung zu bestätigen

1.6 Was mit bestehenden Sitzungen passiert

Nach dem Ändern eines Passworts:

  • Neue Verbindungen müssen das neue Passwort verwenden
  • Bestehende Sitzungen können je nach Umgebung sofort beendet werden
  • In der Produktion wird empfohlen, Änderungen außerhalb der Geschäftszeiten vorzunehmen

2. Grundlagen zu MySQL‑Benutzern und Hosts (häufige „Stecken‑bleiben“-Probleme verhindern)

In MySQL wird ein Benutzer nicht nur durch einen „Benutzernamen“ identifiziert. Stattdessen erfolgt die Identifizierung durch die Kombination aus „Benutzername + Client‑Host (Host)“.
Wenn Sie das nicht verstehen, können Sie auf das klassische Problem stoßen: „Ich habe das Passwort geändert, kann mich aber immer noch nicht anmelden.“

2.1 Ein Benutzer ist ein „user@host“-Paar

Beispiele:

  • 'appuser'@'localhost'
  • 'appuser'@'%'
  • 'appuser'@'192.168.1.%'

Dies sind alle verschiedene Konten.
Selbst wenn Sie das Passwort für localhost ändern, wirkt sich das nicht auf das %‑Konto aus.

Prüfbefehl:

SELECT User, Host FROM mysql.user ORDER BY User, Host;

Häufige Fallstricke

  • Nicht zu erkennen, dass es mehrere Konten mit demselben Benutzernamen gibt
  • Sie haben das Passwort für localhost geändert, melden sich aber tatsächlich über TCP (127.0.0.1) an

2.2 localhost und 127.0.0.1 werden unterschiedlich behandelt

In MySQL:

  • localhost → UNIX‑Socket‑Verbindung (lokale interne Verbindung)
  • 127.0.0.1 → TCP/IP‑Verbindung

Je nach Umgebung kann ein anderes Konto zutreffen.

Prüfen:

mysql -u username -p -h 127.0.0.1

If you can’t log in with the above, the @'127.0.0.1' account may not exist.

2.3 Überprüfen des aktuell authentifizierten Benutzers

Es ist wichtig zu verstehen, „unter welchem Konto Sie authentifiziert sind“.

SELECT CURRENT_USER();

Dies zeigt das „user@host“, das tatsächlich authentifiziert wurde.

SELECT USER(); zeigt die Verbindungsanfrage-Informationen, daher kann es abweichen.

2.4 Berechtigungen prüfen (SHOW GRANTS)

Wenn Sie ein Passwort nicht ändern können, können unzureichende Berechtigungen die Ursache sein.

SHOW GRANTS FOR 'username'@'host';

Oder für den aktuell angemeldeten Benutzer:

SHOW GRANTS FOR CURRENT_USER();

Mindestberechtigungen

  • ALTER USER
  • Oder SYSTEM_USER (MySQL 8.0 und neuer)

2.5 Typische Fehlermuster

  1. Sie haben das Passwort für den falschen Host geändert
  2. Das Authentifizierungs-Plugin unterscheidet sich (sehr häufig in 8.0)
  3. Das Zielkonto existiert von Anfang an nicht

Prüfen Sie, ob der Benutzer existiert:

SELECT User, Host FROM mysql.user WHERE User='username';

Sobald Sie dieses Modell verstehen, können Sie die meisten passwortbezogenen Probleme vermeiden.

3. Empfohlenes Verfahren: Sicher ändern mit ALTER USER (funktioniert für MySQL 8.0 / 5.7)

In MySQL 5.7 und später ist das Ändern von Passwörtern mit ALTER USER der Standard- und empfohlene Ansatz.
Direkte Updates wie UPDATE mysql.user können je nach Version unterschiedlich funktionieren und zukünftige Kompatibilitätsrisiken bergen, daher sollte man sie vermeiden.

3.1 Vorabprüfungen (Immer vor dem Ändern bestätigen)

Bevor Sie ein Passwort ändern, bestätigen Sie diese drei Punkte.

① Zielbenutzer und Host bestätigen

SELECT User, Host FROM mysql.user WHERE User='username';
  • Prüfen Sie, ob mehrere Konten mit demselben Benutzernamen existieren
  • Verwechseln Sie nicht localhost mit %

② Aktuelles Authentifizierungs-Plugin bestätigen (wichtig in 8.0)

SELECT User, Host, plugin
FROM mysql.user
WHERE User='username';
  • caching_sha2_password (Standard in MySQL 8.0)
  • mysql_native_password (Legacy-Plugin)

Einige Verbindungsfehler werden durch das Authentifizierungs-Plugin verursacht.

③ Aktuell authentifizierten Benutzer bestätigen

SELECT CURRENT_USER();

Um Berechtigungsfehler zu vermeiden, führen Sie die Befehle als root oder als ein Benutzer mit entsprechenden Rechten aus.

3.2 ALTER USER ausführen (Standardform)

ALTER USER 'username'@'localhost'
IDENTIFIED BY 'NewStrongPassword123!';

Die Änderung wird sofort wirksam.
In den meisten Fällen ist FLUSH PRIVILEGES; nicht erforderlich.

Hinweise

  • Wenn die Passwort‑Richtlinie ( validate_password ) verletzt wird, kann ERROR 1819 auftreten
  • Enthält das Passwort Sonderzeichen, immer in einfache Anführungszeichen setzen

3.3 Ändern unter Angabe des Authentifizierungs‑Plugins (nur falls nötig)

Wenn Sie ältere Clients in einer MySQL 8.0‑Umgebung verwenden:

ALTER USER 'username'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'NewStrongPassword123!';

Fälle, in denen Sie es ändern sollten:

  • Keine Verbindung mit alten PHP‑ / MySQL‑Clients möglich
  • Eine Umgebung, die caching_sha2_password nicht unterstützt

Fälle, in denen Sie es NICHT ändern sollten:

  • Wenn Sie bereits in einer modernen Umgebung ohne Probleme verbinden können (das Standard‑Plugin ist sicherer)

3.4 Überprüfung nach der Änderung

① Authentifizierungs‑Plugin überprüfen

SELECT User, Host, plugin
FROM mysql.user
WHERE User='username';

② Durch tatsächliches Einloggen überprüfen

mysql -u username -p

Testen Sie immer, ob Sie sich anmelden können.

3.5 Auswirkungen auf bestehende Sitzungen

Nach dem Ändern eines Passworts:

  • Neue Verbindungen → müssen das neue Passwort verwenden
  • Bestehende Verbindungen → können je nach Umgebung bestehen bleiben
  • Produktion → ein Neustart der Anwendungskonnektivität kann erforderlich sein

Häufige Fehler

  • Die Verbindungsdaten der Anwendung nicht aktualisieren
  • Alte Passwörter verbleiben noch in Konfigurationsdateien

3.6 Sichere Betriebstipps für die Produktion

  • Änderungen außerhalb der Geschäftszeiten durchführen
  • Anwendungs‑Konfigurationsdateien im Voraus prüfen
  • Die Arbeit ausführen, ohne die SSH‑Sitzung zu trennen
  • Beim Ändern von root sicherstellen, dass eine Wiederherstellungsmethode bereitsteht

4. Unterschiede zwischen MySQL 8.0 und 5.7

Die häufigste Ursache für Probleme beim Ändern von MySQL‑Passwörtern ist der Unterschied in den Authentifizierungsmethoden zwischen MySQL 8.0 und 5.7.
Insbesondere werden viele Fälle von „Ich habe es geändert, kann mich aber nicht anmelden“ durch Unterschiede im Authentifizierungs‑Plugin verursacht.

Diagram showing the difference between MySQL 5.7 mysql_native_password and MySQL 8.0 caching_sha2_password authentication methods

Authentifizierungsunterschied zwischen MySQL 5.7 und MySQL 8.0

4.1 Unterschiede beim Standard‑Authentifizierungs‑Plugin

VersionDefault authentication plugin
MySQL 5.7mysql_native_password
MySQL 8.0caching_sha2_password

In MySQL 8.0 wurde caching_sha2_password zum Standard für höhere Sicherheit.
Ältere Clients (ältere PHP‑Versionen, ältere MySQL‑Connectoren usw.) unterstützen es jedoch möglicherweise nicht.

Wie man prüft:

SELECT User, Host, plugin
FROM mysql.user
WHERE User='username';

Häufige Probleme

  • Alte Clients können sich nicht mit Benutzern verbinden, die in MySQL 8.0 erstellt wurden
  • Selbst wenn ein Fehler auftritt, erkennt man nicht, dass die Ursache das Authentifizierungs‑Plugin ist

4.2 Wie man das Authentifizierungs‑Plugin für Kompatibilität wechselt

Nur wenn Sie sich von einer älteren Umgebung aus verbinden müssen, ändern Sie es wie folgt:

ALTER USER 'username'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'NewStrongPassword123!';

Nach der Änderung immer einen Verbindungstest durchführen.

Hinweise

  • Aus Sicherheitssicht ist caching_sha2_password sicherer
  • Wechseln Sie nicht unnötig zum Legacy‑Plugin
  • Wenn möglich, ist ein Update der Client‑Seite vorzuziehen

4.3 Direktes UPDATE wird nicht empfohlen

In MySQL 5.7 und früher wurden Methoden wie die folgenden verwendet:

UPDATE mysql.user
SET authentication_string=PASSWORD('newpassword')
WHERE User='username';
FLUSH PRIVILEGES;

Dieser Ansatz ist jedoch:

  • Stark versionsabhängig
  • Änderungen der Spezifikation in 8.0 unterworfen
  • Wahrscheinlich in Zukunft veraltet

Daumenregel: ALTER USER verwenden

4.4 Verhaltensunterschiede des validate_password‑Plugins

In MySQL 5.7 und 8.0 sind Passwort‑Richtlinien (Stärke‑Prüfung) standardmäßig verfügbar.

Prüfen:

SHOW VARIABLES LIKE 'validate_password%';

Wenn Sie die Richtlinie verletzen, erhalten Sie möglicherweise:

ERROR 1819 (HY000)

.

Da viele 8.0‑Umgebungen strengere Sicherheitsgrundlagen durchsetzen,
können Sie nach einem Upgrade von 5.7 feststellen, dass Passwortänderungen aufgrund stärkerer Richtlinienanforderungen nicht mehr bestehen.

4.5 Wie Sie Ihre Version prüfen

Wenn Sie nicht sicher sind, welche Version Sie verwenden:

SELECT VERSION();

Wenn Sie Korrekturen anwenden, ohne die Version zu bestätigen, können Sie die falsche Methode verwenden

5. Wiederherstellung eines vergessenen root‑Passworts (Sicherheitsorientiertes Verfahren)

Wenn Sie das MySQL‑root‑Benutzer‑ (Administrator‑)Passwort vergessen, können Sie sich nicht mehr normal anmelden.
In diesem Fall müssen Sie temporär die Grant‑Tabellen deaktivieren und das Passwort zurücksetzen. Dieses Verfahren birgt jedoch Sicherheitsrisiken, daher sollten Sie die Schritte sorgfältig befolgen.

5.1 Bestätigen, ob Sie das root‑Passwort wirklich benötigen

Prüfen Sie zunächst Folgendes:

  • Ob Sie OS‑seitige sudo‑Rechte besitzen
  • Ob die auth_socket‑Authentifizierung aktiviert ist (häufig auf Ubuntu‑basierten Systemen)

Beispielprüfung:

SELECT User, Host, plugin
FROM mysql.user
WHERE User='root';

Wenn das plugin auth_socket ist, können Sie sich möglicherweise als OS‑root‑Benutzer anmelden.

sudo mysql

Wenn das funktioniert, müssen Sie nur das Passwort zurücksetzen.

5.2 Wiederherstellungsablauf (allgemeines Verfahren)

① MySQL‑Server stoppen

sudo systemctl stop mysql

② Mit deaktivierten Grant‑Tabellen starten

sudo mysqld_safe --skip-grant-tables &

--skip-grant-tables deaktiviert die Authentifizierung.
In diesem Zustand kann sich jeder verbinden, daher sollte das Verfahren zügig abgeschlossen werden.

③ Mit MySQL verbinden

mysql -u root

Sie können sich ohne Passwort verbinden.

④ root‑Passwort zurücksetzen (empfohlene Methode)

ALTER USER 'root'@'localhost'
IDENTIFIED BY 'NewStrongPassword123!';

Wichtig

  • Verwenden Sie NICHT direkt UPDATE mysql.user
  • Verwenden Sie ALTER USER (für Versionskompatibilität)

⑤ Grant-Tabellen erneut aktivieren

FLUSH PRIVILEGES;

⑥ MySQL im Normalmodus neu starten

sudo systemctl restart mysql

Verifizieren Sie anschließend die normale Anmeldung:

mysql -u root -p

5.3 Häufige Fehler

  • Lassen Sie --skip-grant-tables aktiviert (ernsthaftes Sicherheitsrisiko)
  • Versehentlich den Root-Host ändern
  • Das Authentifizierungs-Plugin falsch ändern und sich aussperren

5.4 Hinweise für Produktionsumgebungen

  • Führen Sie dies immer während eines Wartungsfensters auf öffentlichen Servern durch
  • Halten Sie Ihre SSH-Sitzung während der Arbeit aktiv
  • Erstellen Sie nach Möglichkeit im Voraus ein Backup

Die Wiederherstellung des Root-Passworts kann sicher durchgeführt werden, wenn sie sorgfältig ausgeführt wird.

6. Häufige Fehler und Lösungen (Verkehr nach Fehlermeldung erfassen)

Mehrere typische Fehler treten beim Ändern von MySQL-Passwörtern auf.
Im Folgenden organisieren wir häufige Ursachen und Lösungen nach häufig gesuchten Fehlermeldungen.

6.1 FEHLER 1819 (Passwort entspricht nicht den Richtlinienanforderungen)

Beispiel für einen Fehler:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

Ursache

Das Passwort hat die vom validate_password-Plugin erzwungene Stärkevalidierung nicht bestanden.

Aktuelle Richtlinie prüfen

SHOW VARIABLES LIKE 'validate_password%';

Wichtige Einstellungen:

  • validate_password.length
  • validate_password.policy
  • validate_password.mixed_case_count
  • validate_password.number_count
  • validate_password.special_char_count

Lösung ① (Empfohlen): Verwenden Sie ein stärkeres Passwort

  • Mindestens 12 Zeichen
  • Enthält Großbuchstaben, Kleinbuchstaben, Zahlen und Sonderzeichen
  • Vermeiden Sie Wörter aus dem Wörterbuch

Lösung ② (Richtlinie vorübergehend lockern)

SET GLOBAL validate_password.policy = LOW;

Nachdem Sie Ihre Aufgabe abgeschlossen haben, wird empfohlen, die ursprüngliche Einstellung wiederherzustellen.

Häufige Fehler

  • Die Richtlinie in der Produktion entspannt lassen
  • Übersehen, dass das Ändern dieser Einstellung SUPER-Rechte erfordert

6.2 FEHLER 1227 (Unzureichende Berechtigungen)

Beispiel für einen Fehler:

ERROR 1227 (42000): Access denied; you need (at least one of) the SYSTEM_USER privilege(s)

Ursache

Der aktuelle Benutzer hat nicht die Berechtigung ALTER USER oder SYSTEM_USER.

Berechtigungen prüfen

SHOW GRANTS FOR CURRENT_USER();

Lösung

Führen Sie den Befehl als root oder als ein Benutzer mit ausreichenden Berechtigungen aus.

Falls nötig:

GRANT ALTER USER ON *.* TO 'username'@'host';
FLUSH PRIVILEGES;

Hinweis

  • In MySQL 8.0 kann die Berechtigung SYSTEM_USER ebenfalls erforderlich sein
  • Befolgen Sie das Prinzip der minimalen Rechtevergabe in der Produktion

6.3 Anmeldung nach Passwortänderung nicht möglich

Hauptursachen

  1. Falscher Host
  2. Nicht übereinstimmendes Authentifizierungs-Plugin
  3. Client-Inkompatibilität
  4. Anwendungskonfiguration nicht aktualisiert

① Host prüfen

SELECT User, Host FROM mysql.user WHERE User='username';

② Authentifizierungs-Plugin prüfen

SELECT plugin FROM mysql.user WHERE User='username';

③ Authentifizierungs-Plugin ändern (falls nötig)

ALTER USER 'username'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'NewStrongPassword123!';

④ Anwendungskonfiguration prüfen

  • .env
  • config.php
  • Verbindungszeichenfolge (DSN)

Häufige Fehler

  • MySQL ändern, aber die Anwendung nicht aktualisieren
  • Container in Docker-Umgebungen nicht neu starten

6.4 Nach Änderung immer noch mit altem Passwort anmelden können

Normalerweise werden Änderungen mit ALTER USER sofort wirksam.

Mögliche Ursachen:

  • Sie haben tatsächlich ein anderes Host-Konto geändert
  • Die Verbindung verweist auf einen anderen Server (Replikat)
  • Sitzungs-Caching

Prüfen:

SELECT CURRENT_USER();

Es ist entscheidend, sowohl den verbundenen Server als auch den authentifizierten Benutzer genau zu bestätigen.

7. Sicherheitsoperationen: Passwort‑Richtlinien und bewährte Verfahren

Ein Passwort zu ändern ist keine einmalige Aufgabe.
In realen Operationen erhalten Sie die Sicherheit, indem Sie Durchsetzung von Stärke, Privilegien‑Design und betriebliche Regeln kombinieren.

7.1 Verwendung des validate_password‑Plugins

MySQL bietet integrierte Funktionen zur Durchsetzung der Passwortstärke.

Aktuelle Einstellungen prüfen

SHOW VARIABLES LIKE 'validate_password%';

Hauptkonfigurationsparameter

  • validate_password.length (Mindestlänge)
  • validate_password.policy (LOW / MEDIUM / STRONG)
  • validate_password.mixed_case_count
  • validate_password.number_count
  • validate_password.special_char_count

Beispielkonfiguration (mindestens 12 Zeichen, MEDIUM‑Policy)

SET GLOBAL validate_password.length = 12;
SET GLOBAL validate_password.policy = MEDIUM;

Hinweis

  • GLOBALE Änderungen können nach einem Neustart zurückgesetzt werden
  • Um Einstellungen beizubehalten, konfigurieren Sie sie in der Konfigurationsdatei ( my.cnf / my.ini )

7.2 Mindestanforderungen für starke Passwörter

Empfohlene Standards in der Praxis:

  • Mindestens 12 Zeichen
  • Groß‑, Kleinbuchstaben, Zahlen und Sonderzeichen enthalten
  • Wörter aus Wörterbüchern vermeiden
  • Nicht über andere Dienste hinweg wiederverwenden

Beispiel:

X9v!pQ4z#Lm2

Beispiele zum Vermeiden

password123
mysql2025
companyname!

7.3 Wichtiger als periodische Änderungen

Wichtiger als das „alle sechs Monate ändern“ ist die Gestaltung unter der Annahme eines möglichen Lecks von Anmeldeinformationen.

① Separate Anwendungsbenutzer

  • Verwenden Sie in Anwendungen nicht root
  • Erstellen Sie Benutzer mit minimalen Rechten

Beispiel:

GRANT SELECT, INSERT, UPDATE ON dbname.* TO 'appuser'@'localhost';

② Privilegien minimieren (Prinzip des geringsten Privilegs)

Erlauben Sie nur notwendige Vorgänge, um potenziellen Schaden zu begrenzen.

③ Auditing und Protokolle verwenden

Beispiel für Protokollprüfung:

tail -f /var/log/mysql/mysql.log

MySQL Enterprise unterstützt ebenfalls Audit‑Plugins.

7.4 Operative Tipps für Produktionsumgebungen

  • In Staging testen, bevor Produktionsänderungen vorgenommen werden
  • Änderungsverlauf verfolgen (Git oder Dokumentation)
  • Nach Änderungen stets einen Verbindungstest durchführen
  • Halten Sie Ihre SSH‑Sitzung während der Arbeit aktiv

7.5 Dinge, die Sie niemals tun dürfen

  • Das root‑Konto in Anwendungen verwenden
  • Passwörter im Quellcode fest codieren
  • validate_password deaktivieren und so belassen
  • Den Server mit --skip-grant-tables laufen lassen

Passwortverwaltung ist keine einmalige Aufgabe, sondern Teil eines kontinuierlichen Betriebsdesigns.

8. FAQ (Häufig gestellte Fragen)

8.1 Q. Was passiert mit aktiven Sitzungen nach dem Ändern eines Passworts?

A. Prinzipiell benötigen neue Verbindungen das neue Passwort.
Für bestehende Sitzungen können sie entweder sofort beendet werden oder aktiv bleiben, abhängig von Umgebung und Konfiguration.

In der Praxis:

  • Änderungen außerhalb der Geschäftszeiten in der Produktion durchführen
  • Die Anwendung neu starten, um Verbindungen zu aktualisieren

wird empfohlen.

8.2 Q. Ich habe das Passwort geändert, kann mich aber immer noch nicht anmelden

Die drei häufigsten Ursachen sind:

  1. Falscher Host ( localhost vs % , usw.)
  2. Authentifizierungs‑Plugin‑Mismatch (sehr häufig in 8.0)
  3. Anwendungskonfiguration nicht aktualisiert

Prüfen Sie mit:

SELECT User, Host, plugin
FROM mysql.user
WHERE User='username';

Achten Sie besonders auf die Spalte plugin.

8.3 Q. Kann ich nur einem bestimmten Benutzer erlauben, Passwörter zu ändern?

Ja.

GRANT ALTER USER ON *.* TO 'username'@'host';
FLUSH PRIVILEGES;

In MySQL 8.0 kann das SYSTEM_USER‑Privileg ebenfalls erforderlich sein.

SHOW GRANTS FOR 'username'@'host';

Verwenden Sie dies, um Privilegien zu überprüfen.

8.4 Q. Ist die Methode in MariaDB dieselbe?

Grundsätzlich ist ALTER USER verfügbar, aber:

  • Authentifizierungs‑Plugins
  • Verhalten der Passwort‑Richtlinie
  • Versionsspezifische Unterschiede

können je nach Umgebung variieren.

Prüfen Sie mit:

SELECT VERSION();

MySQL Community Edition bietet standardmäßig keine integrierte Verfolgung der Passwort‑Historie.

8.5 Q. Kann ich die Historie von Passwortänderungen prüfen?

Mögliche Ansätze:

  • Audit‑Logging aktivieren
  • Externe Protokollverwaltung verwenden
  • Historie in der operativen Dokumentation nachverfolgen

Beispiel:

tail -f /var/log/mysql/mysql.log

8.6 Q. Kann ich Nicht‑Root‑Benutzer mit –skip-grant-tables wiederherstellen?

Ja, aber es erzeugt einen sehr gefährlichen Zustand.
Immer sofort nach Abschluss des Vorgangs in den Normalmodus zurückkehren.

9. Zusammenfassung

Das Ändern eines MySQL‑Passworts mag einfach erscheinen, aber ohne das Verständnis des user@host‑Modells, der Authentifizierungs‑Plugins und des Berechtigungsdesigns kann es leicht zu Problemen führen.

Die wichtigsten Punkte aus diesem Artikel sind:

9.1 Verwenden Sie ALTER USER als Standardmethode

ALTER USER 'username'@'localhost'
IDENTIFIED BY 'NewStrongPassword123!';
  • Standardmethode in MySQL 5.7 und neuer
  • Direktes UPDATE mysql.user wird nicht empfohlen
  • FLUSH PRIVILEGES ist in der Regel nicht nötig

9.2 Benutzer werden als „user@host“ verwaltet

  • localhost und % sind unterschiedliche Konten
  • Mehrere Konten mit demselben Benutzernamen können existieren
  • Prüfen Sie mit SELECT User, Host FROM mysql.user;

9.3 Achten Sie auf Authentifizierungs‑Plugins in 8.0

  • Standard in 8.0: caching_sha2_password
  • Legacy‑Kompatibilität: mysql_native_password
  • Wenn Sie keine Verbindung herstellen können, prüfen Sie die Spalte plugin
    SELECT plugin FROM mysql.user WHERE User='username';
    

9.4 Seien Sie vorsichtig beim Wiederherstellen des Root‑Passworts

  • --skip-grant-tables ist nur eine vorübergehende Maßnahme
  • Immer nach dem Abschluss in den Normalmodus zurückkehren
  • In einer Wartungszeit im Produktivbetrieb durchführen

9.5 Die meisten Fehler haben klare Ursachen

  • ERROR 1819 → Verstoß gegen die Passwort‑Richtlinie
  • ERROR 1227 → Unzureichende Berechtigungen
  • Anmeldung nicht möglich → Host‑Mismatch oder Authentifizierungs‑Plugin‑Mismatch

9.6 In der Praxis sind das Prinzip der minimalen Rechte und das operative Design am wichtigsten

  • Verwenden Sie root nicht in Anwendungen
  • Erstellen Sie dedizierte Benutzer
  • Erzwingen Sie starke Passwort‑Richtlinien
  • Testen Sie immer Verbindungen nach Änderungen

MySQL‑Passwortverwaltung geht nicht nur darum, einen Wert zu ändern – sie ist das Fundament sicherer Datenbankoperationen.
Wählen Sie die passende Methode für Ihre Umgebung und führen Sie sie sorgfältig aus.