Wie ändert man das MySQL Root-Passwort in Linux?

Veröffentlicht 27. August 2024

Problem: MySQL-Root-Passwort unter Linux ändern

Die Aktualisierung des MySQL-Root-Passworts auf einem Linux-System ist wichtig für die Datenbanksicherheit. Administratoren müssen dieses Passwort möglicherweise ändern, um bewährte Sicherheitspraktiken zu befolgen oder auf potenzielle Sicherheitsprobleme zu reagieren. Der Prozess kann für diejenigen komplex sein, die neu in der MySQL-Befehlszeilenschnittstelle oder der Linux-Systemadministration sind.

Methoden zum Ändern des MySQL-Root-Passworts

Methode 1: Verwendung der MySQL-Befehlszeile

So ändern Sie das MySQL-Root-Passwort über die Befehlszeile:

  1. Starten Sie MySQL im abgesicherten Modus:

    • Stoppen Sie den MySQL-Dienst: sudo systemctl stop mysql
    • Starten Sie MySQL ohne Berechtigungsprüfungen: sudo mysqld_safe --skip-grant-tables &
  2. Setzen Sie das Root-Passwort zurück:

    • Verbinden Sie sich mit MySQL: mysql -u root
    • Wählen Sie die MySQL-Datenbank: USE mysql;
    • Aktualisieren Sie das Root-Passwort: ALTER USER 'root'@'localhost' IDENTIFIED BY 'neues_passwort';
    • Aktualisieren Sie die Berechtigungen: FLUSH PRIVILEGES;
    • Verlassen Sie MySQL: EXIT;
  3. Starten Sie den MySQL-Dienst neu:

    • Beenden Sie die abgesicherte Instanz: sudo killall mysqld
    • Starten Sie MySQL normal: sudo systemctl start mysql

Methode 2: Ändern der MySQL-Konfigurationsdatei

So ändern Sie das Root-Passwort durch Bearbeiten der MySQL-Konfiguration:

  1. Suchen und bearbeiten Sie die my.cnf-Datei:

    • Finden Sie die Datei: sudo find /etc -name my.cnf
    • Bearbeiten Sie die Datei: sudo nano /etc/mysql/my.cnf
  2. Fügen Sie die Option skip-grant-tables hinzu:

    • Fügen Sie unter dem Abschnitt [mysqld] hinzu: skip-grant-tables
  3. Starten Sie MySQL neu und aktualisieren Sie das Passwort:

    • Starten Sie MySQL neu: sudo systemctl restart mysql
    • Verbinden Sie sich mit MySQL: mysql -u root
    • Aktualisieren Sie das Passwort: ALTER USER 'root'@'localhost' IDENTIFIED BY 'neues_passwort';
    • Aktualisieren Sie die Berechtigungen: FLUSH PRIVILEGES;
    • Entfernen Sie die Option skip-grant-tables aus my.cnf
    • Starten Sie MySQL erneut: sudo systemctl restart mysql

Methode 3: Verwendung des mysqladmin-Tools

Das mysqladmin-Tool bietet eine einfache Möglichkeit, das MySQL-Root-Passwort zu ändern:

  1. Syntax zum Ändern des Passworts mit mysqladmin: mysqladmin -u root -p'altes_passwort' password 'neues_passwort'

  2. Beispiele für die Verwendung des mysqladmin-Befehls:

    • Passwort ändern, wenn das aktuelle Passwort bekannt ist: mysqladmin -u root -p'aktuelles_passwort' password 'neues_passwort'
    • Passwort ändern, wenn kein aktuelles Passwort gesetzt ist: mysqladmin -u root password 'neues_passwort'

Ersetzen Sie 'altes_passwort', 'aktuelles_passwort' und 'neues_passwort' durch Ihre tatsächlichen Passwörter.

Überprüfen des neuen MySQL-Root-Passworts

Nach dem Ändern Ihres MySQL-Root-Passworts sollten Sie prüfen, ob das neue Passwort funktioniert. Hier ist, wie Sie das machen können:

Anmelden mit dem neuen Passwort:

  1. Öffnen Sie Ihr Terminal oder die Eingabeaufforderung.
  2. Verwenden Sie diesen Befehl, um sich bei MySQL anzumelden: mysql -u root -p
  3. Geben Sie Ihr neues Passwort ein, wenn Sie dazu aufgefordert werden.
  4. Wenn Sie sich anmelden, sehen Sie die MySQL-Eingabeaufforderung.

Testen des Datenbankzugriffs:

  1. Sobald Sie angemeldet sind, versuchen Sie, auf eine Datenbank zuzugreifen: SHOW DATABASES;
  2. Dieser Befehl sollte eine Liste der Datenbanken anzeigen.
  3. Versuchen Sie, eine neue Datenbank zu erstellen: CREATE DATABASE test_db;
  4. Wenn es funktioniert, sehen Sie eine Meldung, die die Datenbankerstellung bestätigt.
  5. Sie können dann die Testdatenbank entfernen: DROP DATABASE test_db;

Wenn Sie diese Aktionen ohne Fehler durchführen können, bedeutet das, dass Ihr neues Root-Passwort funktioniert und Sie Ihren MySQL-Server verwalten können.

Behebung häufiger Probleme

Vergessenes Root-Passwort

Wenn Sie Ihr MySQL-Root-Passwort vergessen haben, können Sie es mit diesen Schritten zurücksetzen:

  1. Stoppen Sie den MySQL-Dienst: sudo systemctl stop mysql

  2. Starten Sie MySQL im abgesicherten Modus: sudo mysqld_safe --skip-grant-tables &

  3. Verbinden Sie sich ohne Passwort mit MySQL: mysql -u root

  4. Wählen Sie die MySQL-Datenbank: USE mysql;

  5. Setzen Sie das Root-Passwort zurück: ALTER USER 'root'@'localhost' IDENTIFIED BY 'neues_passwort';

  6. Wenden Sie die Änderungen an: FLUSH PRIVILEGES;

  7. Verlassen Sie MySQL: EXIT;

  8. Beenden Sie die abgesicherte Instanz: sudo killall mysqld

  9. Starten Sie MySQL neu: sudo systemctl start mysql

Ersetzen Sie 'neues_passwort' durch Ihr neues Passwort.

Zugriff verweigert Fehler

Wenn Sie nach dem Ändern Ihres Passworts Zugriff verweigert Fehler erhalten, versuchen Sie diese Lösungen:

  1. Überprüfen Sie Ihre MySQL-Benutzerberechtigungen:

    • Melden Sie sich als Root bei MySQL an
    • Führen Sie aus: SHOW GRANTS FOR 'ihr_benutzername'@'localhost';
    • Stellen Sie sicher, dass Sie die benötigten Berechtigungen haben
  2. Aktualisieren Sie bei Bedarf die Benutzerberechtigungen:

    • Verwenden Sie: GRANT ALL PRIVILEGES ON *.* TO 'ihr_benutzername'@'localhost';
    • Dann: FLUSH PRIVILEGES;
  3. Überprüfen Sie die MySQL-Konfigurationsdatei:

    • Schauen Sie in /etc/mysql/my.cnf oder /etc/my.cnf
    • Stellen Sie sicher, dass es keine widersprüchlichen Einstellungen gibt
  4. Starten Sie den MySQL-Dienst neu: sudo systemctl restart mysql

  5. Überprüfen Sie die Systemberechtigung