- 1 1. [Quick Answer] MySQL-Benutzer-Passwort-Änderungsbefehlsliste (Schnellste Lösung)
- 1.1 1.1 Grundsyntax (am häufigsten verwendet)
- 1.2 1.2 Ändern eines Remote‑Zugriffs‑Benutzers (%)
- 1.3 1.3 Passwort ändern unter Angabe des Authentifizierungs‑Plugins (wichtig in 8.0)
- 1.4 1.4 Wenn Sie einen Berechtigungsfehler erhalten
- 1.5 1.5 Wie man nach dem Ändern verifiziert
- 1.6 1.6 Was mit bestehenden Sitzungen passiert
- 2 2. Grundlagen zu MySQL‑Benutzern und Hosts (häufige „Stecken‑bleiben“-Probleme verhindern)
- 3 3. Empfohlenes Verfahren: Sicher ändern mit ALTER USER (funktioniert für MySQL 8.0 / 5.7)
- 3.1 3.1 Vorabprüfungen (Immer vor dem Ändern bestätigen)
- 3.2 3.2 ALTER USER ausführen (Standardform)
- 3.3 3.3 Ändern unter Angabe des Authentifizierungs‑Plugins (nur falls nötig)
- 3.4 3.4 Überprüfung nach der Änderung
- 3.5 3.5 Auswirkungen auf bestehende Sitzungen
- 3.6 3.6 Sichere Betriebstipps für die Produktion
- 4 4. Unterschiede zwischen MySQL 8.0 und 5.7
- 5 5. Wiederherstellung eines vergessenen root‑Passworts (Sicherheitsorientiertes Verfahren)
- 6 6. Häufige Fehler und Lösungen (Verkehr nach Fehlermeldung erfassen)
- 7 7. Sicherheitsoperationen: Passwort‑Richtlinien und bewährte Verfahren
- 8 8. FAQ (Häufig gestellte Fragen)
- 8.1 8.1 Q. Was passiert mit aktiven Sitzungen nach dem Ändern eines Passworts?
- 8.2 8.2 Q. Ich habe das Passwort geändert, kann mich aber immer noch nicht anmelden
- 8.3 8.3 Q. Kann ich nur einem bestimmten Benutzer erlauben, Passwörter zu ändern?
- 8.4 8.4 Q. Ist die Methode in MariaDB dieselbe?
- 8.5 8.5 Q. Kann ich die Historie von Passwortänderungen prüfen?
- 8.6 8.6 Q. Kann ich Nicht‑Root‑Benutzer mit –skip-grant-tables wiederherstellen?
- 9 9. Zusammenfassung
- 9.1 9.1 Verwenden Sie ALTER USER als Standardmethode
- 9.2 9.2 Benutzer werden als „user@host“ verwaltet
- 9.3 9.3 Achten Sie auf Authentifizierungs‑Plugins in 8.0
- 9.4 9.4 Seien Sie vorsichtig beim Wiederherstellen des Root‑Passworts
- 9.5 9.5 Die meisten Fehler haben klare Ursachen
- 9.6 9.6 In der Praxis sind das Prinzip der minimalen Rechte und das operative Design am wichtigsten
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 Zielbenutzernamelocalhost: 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
localhostgeä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
- Sie haben das Passwort für den falschen Host geändert
- Das Authentifizierungs-Plugin unterscheidet sich (sehr häufig in 8.0)
- 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
localhostmit%
② 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, kannERROR 1819auftreten - 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_passwordnicht 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.

Authentifizierungsunterschied zwischen MySQL 5.7 und MySQL 8.0
4.1 Unterschiede beim Standard‑Authentifizierungs‑Plugin
| Version | Default authentication plugin |
|---|---|
| MySQL 5.7 | mysql_native_password |
| MySQL 8.0 | caching_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_passwordsicherer - 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-tablesaktiviert (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.lengthvalidate_password.policyvalidate_password.mixed_case_countvalidate_password.number_countvalidate_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_USERebenfalls erforderlich sein - Befolgen Sie das Prinzip der minimalen Rechtevergabe in der Produktion
6.3 Anmeldung nach Passwortänderung nicht möglich
Hauptursachen
- Falscher Host
- Nicht übereinstimmendes Authentifizierungs-Plugin
- Client-Inkompatibilität
- 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
.envconfig.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_countvalidate_password.number_countvalidate_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_passworddeaktivieren und so belassen- Den Server mit
--skip-grant-tableslaufen 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:
- Falscher Host (
localhostvs%, usw.) - Authentifizierungs‑Plugin‑Mismatch (sehr häufig in 8.0)
- 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.userwird nicht empfohlen FLUSH PRIVILEGESist in der Regel nicht nötig
9.2 Benutzer werden als „user@host“ verwaltet
localhostund%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
pluginSELECT plugin FROM mysql.user WHERE User='username';
9.4 Seien Sie vorsichtig beim Wiederherstellen des Root‑Passworts
--skip-grant-tablesist 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.


