- 1 1. Einführung
- 2 2. So setzen und ändern Sie MySQL-Passwörter
- 3 3. So setzen Sie ein MySQL-Passwort zurück, wenn Sie es vergessen haben
- 4 4. Fehlersuche bei häufigen Fehlern beim Ändern von MySQL‑Passwörtern
- 5 5. MySQL-Sicherheits-Härtung und empfohlene Einstellungen
- 6 6. Häufig gestellte Fragen (FAQ)
- 6.1 Q1: Was ist der einfachste Weg, ein vergessenes MySQL‑root‑Passwort wiederherzustellen?
- 6.2 Q2: Was soll ich tun, wenn ich “ERROR 1045 (28000): Access denied for user” sehe?
- 6.3 Q3: Gibt es einen Unterschied zwischen MySQL 5.6 und 8.0 beim Ändern von Passwörtern?
- 6.4 Q4: Wie kann ich die MySQL-Passwortrichtlinie stärken?
- 6.5 Q5: Ist es sicher, den MySQL-Root-Benutzer zu deaktivieren?
- 6.6 Q6: Gibt es Werkzeuge, um MySQL-Passwörter sicher zu verwalten?
- 6.7 Q7: Kann ich MySQL-Passwortänderungen protokollieren?
- 7 7. Fazit
1. Einführung
Die Bedeutung der MySQL-Passwortverwaltung
MySQL ist ein weltweit weit verbreitetes Datenbankmanagementsystem. Allerdings liegt die Grundlage seiner Sicherheitsverwaltung in der richtigen Passwortkonfiguration und -verwaltung. Ohne angemessene Passwortverwaltung könnten Sie auf folgende Risiken stoßen:
- Unautorisierter Zugriff : Schwache Passwörter machen Ihr System anfällig für externe Angriffe.
- Datenschutzverletzung : Sensible Informationen könnten durch bösartige Benutzer offengelegt werden.
- Systemmanipulation : Löschung oder Änderung von Daten könnte den normalen Betrieb von Websites und Anwendungen beeinträchtigen.
Um diese Risiken zu vermeiden, ist es essenziell, starke Passwörter zu setzen und sie regelmäßig zu ändern. In diesem Artikel erklären wir die folgenden Aspekte der MySQL-Passwortverwaltung im Detail:
✅ Wie man Passwörter für neue Benutzer setzt
✅ Wie man Passwörter für bestehende Benutzer ändert
✅ Wie man ein vergessenes Passwort zurücksetzt
✅ Wie man die Passwortstärke überprüft
✅ Häufige Fehler und wie man sie behebt
✅ Empfohlene Einstellungen zur Verbesserung der Sicherheit
Durch das Lesen dieses Artikels werden Sie das notwendige Wissen und die Fähigkeiten erlangen, um MySQL-Passwörter richtig zu verwalten, lesen Sie daher bis zum Ende durch.
2. So setzen und ändern Sie MySQL-Passwörter
Erstellen eines neuen Benutzers und Setzen eines Passworts
Dieser Abschnitt erklärt, wie man einen neuen Benutzer in MySQL erstellt und ein Passwort setzt.
1. Anmelden bei MySQL
Melden Sie sich zunächst als MySQL-Administrator an (z. B. als root-Benutzer).
mysql -u root -p
-u root ist eine Option, um als root-Benutzer anzumelden, und -p zeigt eine Passwortabfrage an.
2. Neuen Benutzer erstellen und Passwort setzen
Verwenden Sie den Befehl CREATE USER, um einen neuen Benutzer zu erstellen und ein Passwort zu setzen.
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'secure_password';
'newuser'@'localhost': Gibt den Benutzernamen (newuser) und den Host (localhost) an, von dem aus der Benutzer verbinden kann.'secure_password': Das zu setzende Passwort (stellen Sie sicher, dass Sie ein starkes Passwort verwenden).
3. Geeignete Berechtigungen erteilen
Sie müssen dem neuen Benutzer Datenbankberechtigungen erteilen. Zum Beispiel, um alle Berechtigungen zu erteilen:
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;
ALL PRIVILEGES: Erteilt alle Berechtigungen.*.*: Erlaubt Zugriff auf alle Datenbanken und Tabellen.WITH GRANT OPTION: Erlaubt dem Benutzer, Berechtigungen an andere Benutzer weiterzugeben.
4. Die Berechtigungen anwenden
Führen Sie FLUSH PRIVILEGES aus, um die Änderungen anzuwenden.
FLUSH PRIVILEGES;
Sie haben nun erfolgreich einen neuen Benutzer mit einem sicheren Passwort und geeigneten Berechtigungen erstellt.
Ändern des Passworts eines bestehenden Benutzers
Dieser Abschnitt erklärt, wie man das Passwort eines bestehenden MySQL-Benutzers ändert.
1. Anmelden bei MySQL
Melden Sie sich mit administrativen Berechtigungen an.
mysql -u root -p
2. Passwort mit ALTER USER ändern (MySQL 5.7 und neuer)
ALTER USER 'existinguser'@'localhost' IDENTIFIED BY 'new_secure_password';
'existinguser'@'localhost': Der zu ändernde Benutzername und Host.'new_secure_password': Das neue Passwort.
3. Passwort mit SET PASSWORD ändern (MySQL 5.6 und früher)
SET PASSWORD FOR 'existinguser'@'localhost' = PASSWORD('new_secure_password');
Die Verwendung der PASSWORD()-Funktion stellt sicher, dass das Passwort vor der Speicherung richtig verschlüsselt wird.
4. Die Änderungen anwenden
Vergessen Sie nicht, FLUSH PRIVILEGES; auszuführen.
FLUSH PRIVILEGES;
Mit dieser Methode können Sie nun sicher das Passwort eines bestehenden Benutzers ändern.

3. So setzen Sie ein MySQL-Passwort zurück, wenn Sie es vergessen haben
Selbst wenn Sie Ihr MySQL-Passwort vergessen haben, können Sie es durch die richtige Vorgehensweise zurücksetzen. Dieser Abschnitt erklärt, wie man Passwörter auf Windows, Linux und Mac zurücksetzt.
So setzen Sie ein MySQL-Passwort auf Windows zurück
Unter Windows ist ein gängiger Ansatz, das MySQL‑Root‑Passwort zurückzusetzen, die skip-grant-tables‑Option zu verwenden.
1. MySQL‑Dienst stoppen
Zuerst stoppen Sie den laufenden MySQL‑Dienst unter Windows.
net stop mysql
Alternativ können Sie services.msc öffnen und den MySQL‑Dienst manuell stoppen.
2. MySQL mit mysqld --skip-grant-tables starten
mysqld --skip-grant-tables --skip-networking
3. Bei MySQL anmelden
mysql -u root
4. Neues Passwort festlegen
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_secure_password';
Oder, für MySQL 5.6 und früher, verwenden Sie SET PASSWORD.
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_secure_password');
5. MySQL neu starten
net stop mysql
net start mysql
So setzen Sie ein MySQL‑Passwort unter Linux / Mac zurück
1. MySQL‑Dienst stoppen
sudo systemctl stop mysql
2. MySQL im --skip-grant-tables‑Modus starten
sudo mysqld_safe --skip-grant-tables --skip-networking &
3. Bei MySQL anmelden
mysql -u root
4. Passwort zurücksetzen
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_secure_password';
5. MySQL neu starten
sudo systemctl start mysql
Änderungen bei den Passwort‑Zurücksetzungsmethoden in MySQL 8.0 und neuer
In MySQL 8.0 hat sich der Mechanismus zur Passwortverwaltung geändert, daher sollten Sie den folgenden Punkt beachten.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_secure_password';
Dies ermöglicht es Ihnen, bei Bedarf die alte Passwort‑Authentifizierungsmethode weiter zu verwenden.
4. Fehlersuche bei häufigen Fehlern beim Ändern von MySQL‑Passwörtern
Beim Versuch, MySQL‑Passwörter zu ändern, können Fehler auftreten. Dieser Abschnitt erklärt die Ursachen und Lösungen für häufige Fehler.
FEHLER 1045 (28000): Zugriff für Benutzer verweigert
Ursache des Fehlers
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Dieser Fehler tritt beim Anmelden bei MySQL auf, wenn das Passwort falsch ist oder die Berechtigungen unzureichend sind.
Lösung
- Überprüfen Sie das eingegebene Passwort erneut
- Geben Sie den korrekten Benutzernamen und Host an
SELECT User, Host FROM mysql.user;
- Setzen Sie das Passwort zurück (siehe Abschnitt zur Passwort‑Zurücksetzung)
- Konfigurieren Sie die Berechtigungen korrekt
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;
FEHLER 1133: Keine passende Zeile in der Benutzertabelle gefunden
Ursache des Fehlers
ERROR 1133: Can't find any matching row in the user table
Dieser Fehler tritt auf, wenn der angegebene Benutzer nicht existiert.
Lösung
- Überprüfen Sie die aktuelle Benutzerliste
SELECT User, Host FROM mysql.user;
- Erstellen Sie den Benutzer neu
CREATE USER 'root'@'localhost' IDENTIFIED BY 'new_secure_password';
- Geben Sie den korrekten Host an (verwenden Sie
localhostoder%entsprechend)
FEHLER 1820: Sie müssen Ihr Passwort zurücksetzen
Ursache des Fehlers
ERROR 1820: You must reset your password using ALTER USER statement before executing this statement.
Dieser Fehler tritt auf, wenn das Passwort abgelaufen ist.
Lösung
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_secure_password';
Um die Passwortablaufzeit zu deaktivieren:
SET GLOBAL default_password_lifetime = 0;
FEHLER 2059: Plugin caching_sha2_password konnte nicht geladen werden
Ursache des Fehlers
ERROR 2059: Plugin caching_sha2_password could not be loaded
In MySQL 8.0 und neuer hat sich das Standard‑Authentifizierungs‑Plugin zu caching_sha2_password geändert, was bei einigen Clients Fehler verursachen kann.
Lösung
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_secure_password';
Oder fügen Sie Folgendes zur MySQL‑Konfigurationsdatei (my.cnf oder my.ini) hinzu und starten MySQL neu.
[mysqld]
default_authentication_plugin=mysql_native_password
MySQL neu starten:
sudo systemctl restart mysql
5. MySQL-Sicherheits-Härtung und empfohlene Einstellungen
Die Stärkung der MySQL-Sicherheit ist entscheidend, um die Datenbanksicherheit zu verbessern und unbefugten Zugriff und Datenverletzungen zu verhindern. Dieser Abschnitt stellt empfohlene Konfigurationen vor, um die MySQL-Sicherheit zu erhöhen.
Starke Passwörter festlegen
Die Verwendung schwacher Passwörter in MySQL macht Ihr System zu einem leichten Ziel für Angreifer. Konfigurieren Sie die Einstellungen, um die Passwortstärke zu erhöhen.
Aktivieren einer Passwort‑Richtlinie
Überprüfen Sie die aktuelle Passwort‑Richtlinie:
SHOW VARIABLES LIKE 'validate_password%';
Konfigurieren Sie eine starke Passwort‑Richtlinie:
SET GLOBAL validate_password.policy = STRONG;
SET GLOBAL validate_password.length = 12;
SET GLOBAL validate_password.mixed_case_count = 1;
SET GLOBAL validate_password.number_count = 1;
SET GLOBAL validate_password.special_char_count = 1;
Passwortablauf festlegen
Regelmäßiges Ändern von Passwörtern erhöht die Sicherheit.
Überprüfen Sie die aktuelle Einstellung für den Passwortablauf:
SHOW VARIABLES LIKE 'default_password_lifetime';
Setzen Sie den Passwortablauf auf 90 Tage:
SET GLOBAL default_password_lifetime = 90;
Sicherheit des root‑Benutzers stärken
Remote‑Zugriff für den root‑Benutzer einschränken
Überprüfen Sie die aktuelle Host‑Konfiguration für den root‑Benutzer:
SELECT User, Host FROM mysql.user WHERE User = 'root';
Deaktivieren Sie den Remote‑Zugriff für root:
UPDATE mysql.user SET Host='localhost' WHERE User='root';
FLUSH PRIVILEGES;
Erstellen Sie ein alternatives Administratorkonto und deaktivieren Sie root
CREATE USER 'admin_user'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON *.* TO 'admin_user'@'localhost' WITH GRANT OPTION;
RENAME USER 'root'@'localhost' TO 'disabled_root'@'localhost';
FLUSH PRIVILEGES;
MySQL-Remote-Verbindungen einschränken
Bearbeiten Sie die Konfigurationsdatei (my.cnf oder my.ini):
[mysqld]
bind-address = 127.0.0.1
Konfigurieren Sie die Firewall unter Linux:
sudo ufw deny 3306
Erlauben Sie nur eine bestimmte IP‑Adresse:
sudo ufw allow from 192.168.1.100 to any port 3306
Unnötige Konten und Berechtigungen entfernen
Überprüfen Sie die aktuelle Benutzerliste:
SELECT User, Host FROM mysql.user;
Entfernen Sie anonyme Benutzer:
DELETE FROM mysql.user WHERE User='';
FLUSH PRIVILEGES;
Entfernen Sie die unnötige Testdatenbank:
DROP DATABASE test;
FLUSH PRIVILEGES;
MySQL-Logging aktivieren
Aktivieren Sie das Fehlerprotokoll:
[mysqld]
log_error = /var/log/mysql/error.log
Aktivieren Sie das allgemeine Abfrageprotokoll:
general_log = 1
general_log_file = /var/log/mysql/general.log
MySQL neu starten:
sudo systemctl restart mysql
6. Häufig gestellte Fragen (FAQ)
Dieser Abschnitt fasst häufige Fragen und Lösungen im Zusammenhang mit der MySQL‑Passworteinrichtung, -Änderung und -Zurücksetzung zusammen.
Q1: Was ist der einfachste Weg, ein vergessenes MySQL‑root‑Passwort wiederherzustellen?
Lösung
- MySQL stoppen
sudo systemctl stop mysql
- MySQL im
skip-grant-tables‑Modus startensudo mysqld_safe --skip-grant-tables --skip-networking &
- Bei MySQL anmelden
mysql -u root
- Ein neues Passwort festlegen
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_secure_password';
- MySQL neu starten
sudo systemctl restart mysql
Q2: Was soll ich tun, wenn ich “ERROR 1045 (28000): Access denied for user” sehe?
Lösung
- Überprüfen Sie das eingegebene Passwort
mysql -u root -p
- Bestätigen Sie, dass der Benutzer existiert
SELECT User, Host FROM mysql.user;
Setzen Sie das Passwort zurück (siehe vorherige Anweisungen)
Gewähren Sie die entsprechenden Berechtigungen
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;
Q3: Gibt es einen Unterschied zwischen MySQL 5.6 und 8.0 beim Ändern von Passwörtern?
Passwort ändern in MySQL 5.6 und früher
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_secure_password');
Passwort ändern in MySQL 8.0 und später
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_secure_password';
In MySQL 8.0 ist caching_sha2_password die Standard-Authentifizierungsmethode, daher können ältere Clients die folgende Anpassung benötigen:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_secure_password';
Q4: Wie kann ich die MySQL-Passwortrichtlinie stärken?
Eine starke Passwortrichtlinie konfigurieren
SET GLOBAL validate_password.policy = STRONG;
SET GLOBAL validate_password.length = 12;
SET GLOBAL validate_password.mixed_case_count = 1;
SET GLOBAL validate_password.number_count = 1;
SET GLOBAL validate_password.special_char_count = 1;
Q5: Ist es sicher, den MySQL-Root-Benutzer zu deaktivieren?
Lösung
- Ein Administratorkonto erstellen
CREATE USER 'admin_user'@'localhost' IDENTIFIED BY 'secure_password'; GRANT ALL PRIVILEGES ON *.* TO 'admin_user'@'localhost' WITH GRANT OPTION;
- Das Root-Konto deaktivieren
RENAME USER 'root'@'localhost' TO 'disabled_root'@'localhost'; FLUSH PRIVILEGES;
Q6: Gibt es Werkzeuge, um MySQL-Passwörter sicher zu verwalten?
Lösung
mysql_config_editor(Official MySQL Tool)mysql_config_editor set --login-path=local --host=localhost --user=root --password
Damit können Sie sich anmelden, ohne das Passwort explizit einzugeben.
mysql --login-path=local
- Passwort-Manager (Bitwarden, 1Password, KeePass usw.)
- Nützlich zum Erzeugen und sicheren Speichern starker Passwörter.
Q7: Kann ich MySQL-Passwortänderungen protokollieren?
Lösung
Den allgemeinen Abfrage-Log aktivieren
[mysqld]
general_log = 1
general_log_file = /var/log/mysql/general.log
MySQL neu starten:
sudo systemctl restart mysql
7. Fazit
Dieser Artikel erklärte alles von den Grundlagen bis zu fortgeschrittenen Techniken der MySQL-Passwortverwaltung. Nachfolgend finden Sie eine Zusammenfassung der wichtigsten Punkte sowie eine Checkliste zur ordnungsgemäßen Verwaltung von MySQL-Passwörtern.
Wichtige Punkte der MySQL-Passwortverwaltung
✅ Eine korrekte Passwortkonfiguration und -verwaltung bilden die Grundlage der Sicherheit
✅ Starke Passwörter beim Anlegen neuer Benutzer festlegen
✅ Passwörter regelmäßig ändern und Ablaufrichtlinien konfigurieren
✅ Wiederherstellungsverfahren für vergessene Passwörter verstehen
✅ Fehler bei Passwortänderungen korrekt beheben
✅ Remote-Zugriff und Root-Benutzerverwaltung zur Sicherheitsverstärkung optimieren
✅ Logging aktivieren, um passwortbezogene Aktivitäten zu verfolgen
MySQL-Passwortverwaltungs-Checkliste
| Checklist Item | Status |
|---|---|
| Have you set a strong root password for MySQL? | ✅ / ❌ |
Do you use the CREATE USER command when creating new users? | ✅ / ❌ |
Have you enabled the validate_password plugin and configured a strong password policy? | ✅ / ❌ |
| Do you regularly change passwords and set expiration policies? | ✅ / ❌ |
Have you disabled remote access for the root user? | ✅ / ❌ |
| Have you removed unnecessary or anonymous accounts? | ✅ / ❌ |
Do you understand how to reset passwords using skip-grant-tables mode? | ✅ / ❌ |
Do you understand how to resolve ERROR 1045 and ERROR 1820 during password changes? | ✅ / ❌ |
Have you enabled MySQL logs (general_log and error_log)? | ✅ / ❌ |
Empfohlene nächste Schritte nach dem Lesen dieses Artikels
- Überprüfen Sie Ihre aktuelle Passwortrichtlinie und stärken Sie sie bei Bedarf
SHOW VARIABLES LIKE 'validate_password%'; SET GLOBAL validate_password.policy = STRONG; SET GLOBAL validate_password.length = 12;
- Unnötige Konten entfernen
DELETE FROM mysql.user WHERE User=''; DROP DATABASE test; FLUSH PRIVILEGES;
- Remote-Zugriff für den Root-Benutzer einschränken
UPDATE mysql.user SET Host='localhost' WHERE User='root'; FLUSH PRIVILEGES;
- Regelmäßige Passwortabläufe konfigurieren
SET GLOBAL default_password_lifetime = 90;
- Logging für die Überwachung aktivieren
[mysqld] log_error = /var/log/mysql/error.log general_log = 1 general_log_file = /var/log/mysql/general.log
MySQL neu starten:
sudo systemctl restart mysql
Verwandte Artikel zum Vertiefen
📌 Detaillierter Leitfaden zur MySQL-Benutzerrechteverwaltung
📌 MySQL-Backup- und Wiederherstellungsverfahren
📌 Wie man MySQL-Datenbanken optimiert
📌 MySQL mit externer Authentifizierung (LDAP oder OAuth) konfigurieren
Abschließende Gedanken
MySQL‑Passwortverwaltung ist wesentliches Wissen zum Schutz der Datenbanksicherheit.
Wenden Sie die in diesem Leitfaden behandelten Praktiken an und stellen Sie sichere Datenbankverwaltung sicher! 💪


