Schlagwort-Archive: MySQL Datenbank

MySQL ist als Open-Source Datenbank Software sowie als kommerzielle Enterpriseversion für verschiedene Betriebssysteme wie Linux.

MySQL Root-Passwort vergessen, einfaches Zurücksetzen

MySQL-Server Root-Passwort vergessen ?

Ist das MySQL Root-Passwort vergessen oder verlorengegangen! keine Panik!

Ist das MySQL-Server Root-Passwort vergessen oder verlorengegangen ?

In diesem Tutorial zeige ich, wie du das MySQL Root-Passwort schnell und einfach Zurücksetzen kannst.

Das Zurücksetzen des MySQL Root-Passwort in wenigen Schritte. Die einfachste Methode für das Zurücksetzen des MySQL Root-Passwort.

Die Anleitung gilt ausschließlich für die Open-Source Datenbank MariaDB, der beliebte Fork des MySQL-Datenbank Servers.

MySQL Root-Passwort Zurücksetzen

Für die folgenden Schritte wird der Shell Zugang mit einem lokalen Benutzerkonto auf dem System vorausgetzt, auf diesem MariaDB/MySQL ausgeführt wird. Das Benutzerkonto muss über die sudo-Zugehörigkeit verfügen, für das Ausführen der Befehle mit erhöhten Privilegien.

MySQL-Server stoppen

Als erstes beende den MariaDB/MySQL Server und stoppe den Dienst.

$ sudo systemctl stop mysqld

MySQL-Server ohne Passwort starten

Starte nun wie folgt eine temporäre MySQL-Serverinstanz.

$ sudo -u mysql mysqld --skip-grant-tables &

Der MySQL-Server wird mit der Option --skip-grant-tables gestartet, dabei werden die Grant-Tabellen nicht geladen, damit wird keine Zugriffskontrolle angewendet. Die Benutzer können nun ohne Passwort auf den MariaDB/MySQL Server zugreifen.

In einer Terminal-Shell ist jetzt der Login als Root-Benutzer am MariaDB/MySQL-Server möglich, ohne ein Passwort.

$ mysql -u root

MySQL Root-Passwort Zurücksetzen

Nun die Anweisung zum Zurücksetzen der aktuellen Berechtigungen.

FLUSH PRIVILEGES;

Jetzt das MySQL Root-Passwort mit folgendem Befehl Zurücksetzen.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';

Platzhalter „NewPassword“ durch das gewünschte Passwort ersetzen.

Zum Schluss die Berechtigungen erneut einlesen und MySQL beenden.

FLUSH PRIVILEGES;
quit

Das MySQL Root-Passwort ist geändert. Der zuvor gestartete temporäre MySQL-Server wird nun gestoppt, mit dem nächsten Shell Befehl.

$ ps auxw | grep '\-\-skip-grant-tables' | tail -n 1 | awk '{ print $2 }' | sudo xargs kill

MySQL-Server wieder starten

Starte nun den MariaDB/MySQL-Server neu und melde dich mit dem neuen Passwort an.

$ sudo systemctl start mysqld
$ mysql -u root -p

Der MariaDB/MySQL-Server ist wieder unter vollständiger Kontrolle.

MySQL Root-Passwort vergessen
MySQL Root-Passwort vergessen

sudo -u mysql mysqld --skip-grant-tables & nach dem ausführen des Befehls muss möglicherweise Enter oder Ctrl+C gedrückt werden.

MySQL Root-Passwort vergessen, einfaches zurücksetzen
MySQL Root-Passwort vergessen, einfaches zurücksetzen

Über MariaDB

MariaDB ist ein freies, relationales Open-Source Datenbank-management-system, das durch eine Abspaltung (Fork) aus MySQL entstanden ist. Der relationale Datenbank Server, MySQL beruht beim Hauptentwickler Michael Widenius. Der Aufbau welcher MariaDB ursprünglich hatte, beinhaltet die Software-Schicht, welche die Basisfunktionalität der Datenbank enthält, für das Erstellen, Lesen, Ändern und Löschen von Daten.

Ergänzung

Alternative Anweisung um das MySQL Root-Passwort zu ändern.

UPDATE USER set password=PASSWORD('NewPassword') where User='root';
FLUSH PRIVILEGES;
quit

Fazit

Dieses Tutorial zeigt, wie man das vergessene oder verlorengegangene Root-Passwort des MySQL-Servers zurücksetzt. Die Schritte wurden in der GNU Bash auf einem Ubuntu 22.04.3 LTS in WSL und auf einem virtuellen Debian 12 (Bookworm) GNU/Linux mit MariaDB 10.6.18-Datenbankserver ausgeführt.

MySQL root Passwort auf leer setzen

In manchen Situationen ist ein leeres MySQL-Root-Passwort nützlich, zum Beispiel bei der Bereitstellung von Tests, wenn mehrere Datenbankschemata importiert werden müssen oder einfach beim Bereitstellen von SQL-Datenbanken, die für Versuchszwecke bereitgestellt werden sollen.

Wie setzt man ein blankes MySQL-Root-Passwort?

MySQL root Passwort auf leer setzen

Öffne hierzu im Terminal zunächst MySQL mit dem Root-Konto.

$ sudo mysql

Bei einigen Konfigurationen muss möglicherweise der folgende Befehl ausgeführt werden, mit Root-Passwort Eingabe.

$ mysql -u root -p

Wenn man ein leeres Passwort für den Root-Benutzer festlegen muss, so kann dies mit diesem Befehl erstellt werden.

MariaDB> SET PASSWORD FOR 'root'@'localhost' = '';

Wenn das Passwort eines bereits bestehenden Benutzers auf leer gesetzt werden soll, kann folgender ALTER USER Befehl verwendet werden.

MariaDB> ALTER USER 'user'@'localhost' IDENTIFIED BY '';

Der folgende Befehl erstellt ein neuen Benutzer user und wird ein leeres Passwort festlegen.

MariaDB> CREATE USER 'user'@'localhost' IDENTIFIED BY '';

Alternativ kann mit mysqladmin das root Passwort leer gesetzt werden.

$ sudo mysqladmin -u root -pcurrent_password password ''

MySQL lässt sich auch in der grafischen Weboberfläche von phpMyAdmin einfach und übersichtlich verwalten.

Fazit

In diesem Beitrag zeige ich, wie ein leeres MySQL-Root-Passwort erstellt wird, für Situationen nützlich, wie beispielsweise bei der Bereitstellung von Tests, wenn mehrere Datenbankschemata importiert werden müssen, oder einfach, wenn SQL-Datenbanken zum Testen in Nicht-Produktionsumgebungen bereitgestellt werden sollen, hier sind Hürden nicht sehr sinnvoll und eine Vereinfachung kann angestrebt werden.

Relationale Datenbankmanagementsysteme wie MySQL, MariaDB und PostgreSQL gehören laut dem aktuellen DB-Engines-Ranking zu den populärsten. Da sie als sehr zuverlässig gelten und Inkonsistenzen in den Datensätzen vermeiden, sind sie seit Jahrzehnten als etablierter Standard für Datenbanken in den meisten Systemen gesetzt.

Um die Daten darin abzufragen und zu bearbeiten, kommt in der Regel die Datenbanksprache Structured Query Language (SQL) zum Einsatz. So kommunizieren Anwender beispielsweise über eine Maske für Produktsuche in einem Webshop mit einem Server. Dieser fragt wiederum eine Datenbank ab und spielt die erhaltenen Informationen an den Webshop als Suchergebnis zurück.

Auf diesem Weg sind die in der Datenbank gespeicherten Daten anfällig für sogenannte SQL-Injection (SQLi), die beliebigen Code in Abfragen einschleust. So ist es möglich, Informationen unerlaubt auszulesen oder zu verändern. Im schlimmsten Fall erlangen die Eindringlinge Kontrolle über die gesamte Datenbank.