Wenn Sie das Root-Passwort für MariaDB oder MySQL nicht mehr kennen, können Sie den administrativen Zugriff in vielen Fällen wiederherstellen. Die genaue Vorgehensweise hängt davon ab, ob Sie MariaDB oder MySQL verwenden und welche Authentifizierung für den Root-Account eingerichtet ist.
Administrativen Zugriff zuerst prüfen
Verbinden Sie sich per SSH mit Ihrem Server. Sie benötigen Root-Rechte oder ein Benutzerkonto mit sudo-Berechtigung.
MariaDB
Wenn Sie MariaDB verwenden, versuchen Sie zunächst folgenden Befehl:
sudo mariadbWenn die MariaDB-Konsole geöffnet wird, besitzen Sie bereits administrativen Zugriff. Ein Zurücksetzen über einen speziellen Recovery-Modus ist dann nicht erforderlich.
Bei der standardmäßigen Socket-Authentifizierung können Sie MariaDB weiterhin über sudo mariadb administrieren.
MySQL
Wenn Sie MySQL verwenden, prüfen Sie zunächst, ob eine Anmeldung über Ihre Systemrechte möglich ist:
sudo mysqlWenn die MySQL-Konsole geöffnet wird, können Sie das Passwort direkt neu vergeben:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEUES_SICHERES_PASSWORT';Ersetzen Sie NEUES_SICHERES_PASSWORT durch ein neues, sicheres Passwort.
Passwort für den MariaDB-Root-Account festlegen
Wenn Sie sich mit sudo mariadb anmelden können und zusätzlich eine Anmeldung mit Passwort benötigen, können Sie ein Passwort für root@localhost festlegen.
Öffnen Sie zunächst MariaDB:
sudo mariadbVergeben Sie anschließend das neue Passwort:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NEUES_SICHERES_PASSWORT');Ersetzen Sie NEUES_SICHERES_PASSWORT durch das gewünschte Passwort.
Verlassen Sie anschließend die MariaDB-Konsole:
exit;sudo mariadb ist bei einer standardmäßigen MariaDB-Installation die vorgesehene administrative Zugriffsmethode. Ändern Sie die verwendete Authentifizierungsmethode nur, wenn dies für Ihre Anwendung oder Administration tatsächlich erforderlich ist.
Kein administrativer Zugriff mehr möglich
Wenn weder die Anmeldung mit dem bekannten Passwort noch der administrative Zugriff über sudo mariadb beziehungsweise sudo mysql funktioniert, können Sie den Datenbankserver vorübergehend ohne Prüfung der Berechtigungstabellen starten.
MariaDB-Root-Passwort zurücksetzen
Stoppen Sie MariaDB:
sudo systemctl stop mariadbStarten Sie MariaDB vorübergehend ohne Berechtigungsprüfung und ohne Netzwerkzugriff:
sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking"
sudo systemctl start mariadbÖffnen Sie anschließend die MariaDB-Konsole:
sudo mariadbLaden Sie die Berechtigungstabellen wieder:
FLUSH PRIVILEGES;Vergeben Sie anschließend ein neues Passwort:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NEUES_SICHERES_PASSWORT');Verlassen Sie MariaDB:
exit;Beenden Sie den Recovery-Modus und starten Sie MariaDB wieder normal:
sudo systemctl stop mariadb
sudo systemctl unset-environment MYSQLD_OPTS
sudo systemctl start mariadbMySQL-Root-Passwort zurücksetzen
Stoppen Sie MySQL:
sudo systemctl stop mysqlStarten Sie MySQL vorübergehend ohne Berechtigungsprüfung:
sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking"
sudo systemctl start mysqlÖffnen Sie anschließend die MySQL-Konsole:
sudo mysqlLaden Sie die Berechtigungstabellen:
FLUSH PRIVILEGES;Vergeben Sie anschließend ein neues Root-Passwort:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEUES_SICHERES_PASSWORT';Verlassen Sie MySQL:
exit;Entfernen Sie anschließend die Recovery-Optionen und starten Sie MySQL wieder normal:
sudo systemctl stop mysql
sudo systemctl unset-environment MYSQLD_OPTS
sudo systemctl start mysqlNeues Passwort prüfen
Bei MySQL können Sie die Anmeldung mit dem neuen Passwort folgendermaßen testen:
mysql -u root -pBei MariaDB verwenden Sie:
mariadb -u root -pGeben Sie das neue Passwort ein, wenn Sie dazu aufgefordert werden.
Wenn Sie MariaDB weiterhin über die standardmäßige Socket-Authentifizierung administrieren, können Sie stattdessen wie gewohnt folgenden Befehl verwenden:
sudo mariadb