Der Zugriff auf Datenbanken ist eine zentrale Aufgabe für die Serververwaltung und die Wartung von Webanwendungen.
MySQL ist eines der am häufigsten verwendeten und leistungsfähigsten Datenbankverwaltungssysteme (DBMS). Als Datenbankadministrator verwalten Sie geschäftskritische Informationen, und das MySQL-Root-Passwort spielt eine entscheidende Rolle bei der Gewährleistung der Sicherheit und Integrität dieser Daten.
Gelegentlich kann es vorkommen, dass Sie das MySQL-Root-Passwort verlieren oder vergessen. Dies kann aus verschiedenen Gründen passieren, von unvorhergesehenen Umständen über Teamwechsel bis hin zu einfachem menschlichem Versagen. In solchen Fällen ist es essenziell zu wissen, wie man das Root-Passwort zurücksetzt und den Zugriff auf die Datenbank wiederherstellt.
In diesem Artikel stellen wir Methoden und Tools vor, mit denen Sie das MySQL-Root-Passwort zurücksetzen und die vollständige Kontrolle über Ihre Datenbank wiedererlangen können. Wir behandeln verschiedene Ansätze, von der Verwendung offizieller MySQL-Tools wie mysqladmin und mysqld_safe bis hin zur Bearbeitung von Konfigurationsdateien und der Durchführung von Systemänderungen.
Wir erläutern außerdem wichtige Vorsichtsmaßnahmen, mit denen Sie Ihre Datenbank absichern und verhindern können, dass das Root-Passwort künftig verloren geht. Dazu gehören die Verwendung starker Passwörter, die Beschränkung des Datenbankzugriffs auf unbedingt notwendige Benutzer sowie regelmäßige Datensicherungen zur Risikominimierung.
Wenn Sie also das MySQL-Root-Passwort zurücksetzen müssen, finden Sie im Folgenden detaillierte Anleitungen und Empfehlungen, die Ihnen helfen, den Zugriff wiederzuerlangen und die Verwaltung Ihrer MySQL-Datenbank fortzusetzen.
MySQL verwendet kein PAM, und das SSH-Passwort funktioniert nicht. Das Root-Passwort wird während der Installation des Datenbankservers in der Phase der Erstellung der Berechtigungstabellen festgelegt.
Wenn Sie nach einem Anmeldeversuch anstelle einer Begrüßung den Fehler ERROR 1045: Access denied for user 'root'@'localhost' erhalten, müssen Sie das Root-Passwort zurücksetzen.
Um das Root-Passwort in MySQL 8 zurückzusetzen, müssen Sie ein einfaches Verfahren befolgen. Diese Methode ist gleichermaßen für MySQL und MariaDB geeignet, da sie vollständig kompatibel sind und dieselben Befehle verwenden.
Unter Ubuntu können Sie das MySQL-Root-Passwort mit denselben Methoden wie unter Debian zurücksetzen. Für CentOS 7 kann es geringfügige Abweichungen geben, auf die wir im entsprechenden Abschnitt weiter unten hinweisen.
Wenn Sie außerdem Benutzerkonten bereinigen, lesen Sie auch How to Properly Delete a MySQL User – dort werden das Prüfen und Entziehen von Berechtigungen sowie die Verwendung des DROP USER-Befehls erläutert, um unnötige Zugriffe zu entfernen, sobald die Root-Rechte wiederhergestellt sind.
Dies ist aufgrund seiner Einfachheit eine recht verbreitete Methode. Nachfolgend finden Sie einen Schritt-für-Schritt-Plan für diesen Vorgang:
service mysqld stop
mysqld --skip-grant-tables&
Das kaufmännische Und-Zeichen am Ende ermöglicht es, den Dienst im Hintergrund auszuführen, sodass kein separates Terminalfenster belegt wird.
Da die Berechtigungstabellen nicht geladen sind, ist keine Passworteingabe erforderlich:
mysql -u root
Jeder Befehl an die Datenbank muss mit einem Semikolon enden. Wird eine Abfrage nicht abgeschlossen, wartet MySQL auf die Fortsetzung des Befehls. Sie können einfach ein Semikolon hinzufügen, falls es in der neuen Zeile vergessen wurde.
FLUSH PRIVILEGES;
Die Antwort sollte lauten: Query OK, 0 rows affected.
Um ein neues Root-Passwort in MySQL festzulegen, verwenden Sie unter Ubuntu und Debian:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'PASSWORD';
Wenn diese Abfrage nicht funktioniert, versuchen Sie:
UPDATE `mysql`.`user` SET `password`=password('PASSWORD') WHERE `user`='root';
Oder:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('PASSWORD');
Unter CentOS 7 können Sie das MySQL-Root-Passwort mit folgendem Befehl zurücksetzen:
UPDATE `mysql`.`user` SET `authentication_string`=password('PASSWORD') WHERE `user`='root';
Bei erfolgreicher Ausführung erhalten Sie die Antwort: Query OK, 0 rows affected.
Das Passwort kann sogar einen leeren Wert haben, in diesem Fall verlieren Sie jedoch die Möglichkeit, sich auf andere Weise als über die Kommandozeile mit dem Server zu verbinden. Die Passwortänderung wird unmittelbar nach Ausführung des Befehls wirksam. Sie können dies beispielsweise überprüfen, indem Sie sich über phpMyAdmin verbinden, sofern kein leerer Wert gesetzt wurde.
quit;
Die Antwort sollte Bye lauten, und Sie kehren zum normalen Terminal zurück.
service mysqld start
Das Zurücksetzen des MySQL-Superuser-Passworts unter Windows ähnelt dem Verfahren zum Zurücksetzen des Root-Passworts auf Linux-Systemen. Unterschiede bestehen hauptsächlich im Auffinden und Starten des Datenbankdienstes selbst.
Nachfolgend finden Sie eine Schritt-für-Schritt-Anleitung zum Zurücksetzen des Datenbank-Superuser-Passworts unter Windows.
Je nachdem, welche Datenbank installiert ist, gibt es Unterschiede. Zur Überprüfung führen Sie aus:
Für MySQL:
sc qc "mysql"
Für MariaDB:
sc qc "mariadb"
Ist die Datenbank nicht installiert, erhalten Sie die Meldung, dass der Dienst nicht existiert. Andernfalls sehen Sie grundlegende Informationen zu MySQL oder MariaDB.
Wenn die Variable %PATH% nicht gesetzt ist, wechseln Sie in den Ordner mit der ausführbaren Datei des Datenbankdienstes. Den Pfad finden Sie in der Ausgabe des sc qc-Befehls unter "BINARY_PATH_NAME". In unserem Fall ist dies C:\localhost\mariadb\bin\.
cd C:\localhost\mariadb\bin\
Für MySQL:
net stop mysql
Für MariaDB:
net stop mariadb
Verwenden Sie den start-Befehl. Im Gegensatz zu Linux funktioniert unter Windows das kaufmännische Und-Zeichen am Ende des Befehls nicht, und wenn der Dienst gestartet ist, werden keine weiteren Befehle zugelassen, bis die Sitzung beendet wird (CTRL+C).
Sie können denselben Befehl für MySQL und MariaDB verwenden.
mysqld --skip-grant-tables
mysql -u root -p
Geben Sie ein leeres Passwort ein, und Sie sehen die standardmäßige Begrüßung. Nun müssen Sie Befehle für den Datenbankserver eingeben.
FLUSH PRIVILEGES;
Ohne diesen initialen Befehl erhalten Sie beim Ändern des Passworts möglicherweise den Fehler: "ERROR 1290: The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement."
ALTER USER 'root'@'localhost' IDENTIFIED BY 'PASSWORD';
Hinweis: Wenn der Befehl nicht funktioniert, versuchen Sie die Optionen aus Schritt 5 der Anleitungen für Linux-Systeme.
Schließen Sie das Eingabeaufforderungsfenster mit der temporär laufenden Datenbankversion oder drücken Sie CTRL+C.
Für MySQL:
net start mysql
Für MariaDB:
net start mariadb
Das Zurücksetzen des MySQL-Root-Passworts ist eine wichtige Fähigkeit für Datenbankadministratoren. In diesem Artikel haben wir verschiedene Methoden und Tools zum Zurücksetzen des Root-Passworts und zur Wiedererlangung der vollständigen Kontrolle über Ihre verwaltete MySQL-Datenbank vorgestellt.
Abschließend finden Sie hier einige zentrale Punkte zur Datenbanksicherheit:
Verwenden Sie komplexe Passwörter, die Buchstaben, Zahlen und Sonderzeichen kombinieren, und ändern Sie diese regelmäßig.
Beschränken Sie den Datenbankzugriff auf unbedingt notwendige Benutzer, um das Risiko unbefugten Zugriffs zu minimieren.
Aktualisieren Sie das MySQL-System regelmäßig, um bekannte Schwachstellen zu beseitigen und die neuesten Sicherheits-Patches zu erhalten.
Sichern Sie die Datenbank regelmäßig. Dies ist Ihre Absicherung für den Fall von Datenverlust oder Systemausfällen. Entwickeln Sie eine Backup-Strategie, legen Sie die Häufigkeit und Methoden der Sicherung fest und prüfen Sie deren Wiederherstellbarkeit, um die Datenwiederherstellung sicherzustellen.
Denken Sie an die Bedeutung von Schulung und kontinuierlicher Weiterentwicklung im Bereich der Datenbankverwaltung. Informieren Sie sich über aktuelle Trends, neue Funktionen und MySQL-Tools. Nutzen Sie Lernressourcen, besuchen Sie Seminare und Konferenzen und tauschen Sie sich mit erfahrenen Fachleuten aus. Die kontinuierliche Aktualisierung Ihres Wissens und Ihrer Fähigkeiten hilft Ihnen, Datenbanken effektiv zu verwalten und neue Probleme zu lösen.
Das Zurücksetzen des MySQL-Root-Passworts ist eine kritische Aufgabe, die Aufmerksamkeit und Fachwissen erfordert. Mit den vorgestellten Methoden und Empfehlungen können Sie diese Aufgabe jedoch bewältigen und die vollständige Kontrolle über Ihre MySQL-Datenbank zurückerlangen. Achten Sie stets auf Sicherheit, erstellen Sie Backups und lernen Sie kontinuierlich weiter, damit Ihre Arbeit mit MySQL erfolgreich und sicher bleibt.