So setzen Sie das MySQL-Root-Passwort auf Ihrem Linux-Server zurück
Das Zurücksetzen des MySQL-Root-Kennworts auf einem Linux-Server kann eine kritische Aufgabe sein, wenn der Zugriff auf den MySQL-Server verloren geht oder wenn ein neuer Server eingerichtet wird. Dieser Vorgang umfasst mehrere Schritte, darunter das Beenden des MySQL-Dienstes, das Starten von MySQL im abgesicherten Modus und das Aktualisieren des Root-Passworts. Diese Anleitung führt Sie detailliert durch jeden Schritt, um sicherzustellen, dass Sie Ihr MySQL-Root-Passwort erfolgreich zurücksetzen können.
In diesem Tutorial lernen Sie:
- So stoppen Sie den MySQL-Dienst
- So starten Sie MySQL im abgesicherten Modus
- So aktualisieren Sie das MySQL-Root-Passwort
- So starten Sie den MySQL-Dienst neu
So setzen Sie das MySQL-Root-Passwort auf Ihrem Linux-Server zurück
Wenn Sie den Zugriff auf Ihr MySQL-Root-Konto verlieren, ist das Zurücksetzen des Root-Passworts unerlässlich. Diese Anleitung bietet eine Schritt-für-Schritt-Anleitung zum Zurücksetzen Ihres MySQL-Root-Passworts auf einem Linux-Server.
Beenden Sie den MySQL-Dienst: Der erste Schritt besteht darin, den MySQL-Dienst zu stoppen, um neue Verbindungen zu verhindern.
sudo systemctl stop mysqlErstellen und Festlegen von Berechtigungen für das MySQL-Verzeichnis: Als nächstes müssen Sie das erforderliche Verzeichnis erstellen und die richtigen Berechtigungen festlegen.
sudo mkdir -p /var/run/mysqld sudo chown mysql:mysql /var/run/mysqld sudo chmod -R 755 /var/run/mysqld sudo rm -f /var/run/mysqld/mysqld.sock.lock sudo rm -f /var/run/mysqld/mysqlx.sock.lockMySQL im abgesicherten Modus starten: Starten Sie MySQL nun im abgesicherten Modus mit deaktivierten Grant-Tabellen.
sudo mysqld_safe --skip-grant-tables &Bei MySQL anmelden: Melden Sie sich bei MySQL als Root-Benutzer ohne Passwort an.
mysql -u rootMySQL-Datenbank auswählen: Verwenden Sie die MySQL-Datenbank, in der Benutzerinformationen gespeichert sind.
mysql> USE mysql;Flush-Berechtigungen: Aktualisieren Sie die MySQL-Berechtigungen, um sicherzustellen, dass alle Änderungen wirksam werden.
mysql> FLUSH PRIVILEGES;Durch das Leeren von Berechtigungen werden die Grant-Tabellen neu geladen, wodurch sichergestellt wird, dass alle vorgenommenen Änderungen vom Server erkannt werden.
Root-Passwort zurücksetzen: Aktualisieren Sie das Root-Benutzerpasswort.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';Beenden Sie MySQL und starten Sie den Dienst neu: Beenden Sie die MySQL-Shell.
mysql> exitProzess im abgesicherten Modus beenden: Beenden Sie den Prozess im abgesicherten Modus von MySQL.
sudo killall mysqldMySQL-Dienst erneut starten: Starten Sie abschließend den MySQL-Dienst normal.
sudo systemctl start mysqlÜberprüfen Sie das neue Passwort: Stellen Sie sicher, dass das neue Root-Passwort funktioniert, indem Sie sich bei MySQL anmelden.
mysql -pWenn Sie dazu aufgefordert werden, geben Sie das neue Kennwort ein, um zu bestätigen, dass das Zurücksetzen des Kennworts erfolgreich war.
Durch das Beenden des MySQL-Dienstes wird sichergestellt, dass keine anderen Benutzer eine Verbindung zur Datenbank herstellen können, während wir das Root-Passwort zurücksetzen.
Mit diesen Befehlen wird das Verzeichnis erstellt, der Besitz und die Berechtigungen festgelegt und alle vorhandenen Socket-Lock-Dateien entfernt, um Konflikte zu vermeiden.
Wenn Sie MySQL im abgesicherten Modus starten, können Sie ohne Passwort auf die Datenbank zugreifen, was zum Zurücksetzen des Root-Passworts erforderlich ist.
Mit diesem Befehl werden Sie in der MySQL-Shell angemeldet, in der Sie SQL-Befehle ausführen können, um das Root-Kennwort zurückzusetzen.
Wenn Sie die MySQL-Datenbank auswählen, können Sie Benutzerinformationen ändern, einschließlich des Zurücksetzens des Root-Passworts.
Dieser Befehl ändert das Root-Passwort in 'new_password'. Ersetzen Sie "new_password" durch Ihr gewünschtes Passwort.
Durch das Beenden des Prozesses im abgesicherten Modus wird sichergestellt, dass MySQL normal ausgeführt wird, ohne dass Grant-Tabellen übersprungen werden.
Wenn Sie den MySQL-Dienst im normalen Modus erneut starten, können Sie den Server mit dem neuen root-Passwort verwenden.
Schlussfolgerung
Das Zurücksetzen des MySQL-Root-Passworts auf einem Linux-Server ist ein unkomplizierter Vorgang, wenn er sorgfältig befolgt wird. Indem Sie den MySQL-Dienst stoppen, ihn im abgesicherten Modus starten und das Root-Passwort aktualisieren, können Sie wieder Zugriff auf Ihren MySQL-Server erhalten. Stellen Sie sicher, dass Sie jeden Schritt korrekt ausführen, um Probleme zu vermeiden.
Anhang zur Fehlerbehebung
Wenn während des Zurücksetzens Probleme auftreten, lesen Sie die folgenden Protokollmeldungen und Lösungen.
Relevante Protokollmeldungen:
2024-06-26T09:13:42.950465Z 0 [ERROR] [MY-011292] [Server] Plugin mysqlx reported: 'Preparation of I/O interfaces failed, X Protocol won't be accessible'
2024-06-26T09:13:42.950494Z 0 [ERROR] [MY-011300] [Server] Plugin mysqlx reported: 'Setup of socket: '/var/run/mysqld/mysqlx.sock' failed, can't create lock file /var/run/mysqld/mysqlx.sock.lock'
2024-06-26T09:13:43.032408Z 0 [ERROR] [MY-010273] [Server] Could not create unix socket lock file /var/run/mysqld/mysqld.sock.lock.
2024-06-26T09:13:43.032420Z 0 [ERROR] [MY-010268] [Server] Unable to setup unix socket lock file.
2024-06-26T09:13:43.032425Z 0 [ERROR] [MY-010119] [Server] Aborting
Häufige Probleme und Lösungen:
1. Plugin mysqlx Errors:
– Fehler:
– 'Vorbereitung der I/O-Schnittstellen fehlgeschlagen, auf das X-Protokoll kann nicht zugegriffen werden'
– 'Einrichtung des Sockets: '/var/run/mysqld/mysqlx.sock' fehlgeschlagen, Sperrdatei kann nicht erstellt werden /var/run/mysqld/mysqlx.sock.lock'
– Lösung: Stellen Sie sicher, dass die MySQL-Installation abgeschlossen ist. Beheben Sie Socketprobleme mit den folgenden Befehlen:
sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
sudo chmod -R 755 /var/run/mysqld
sudo rm -f /var/run/mysqld/mysqld.sock.lock
sudo rm -f /var/run/mysqld/mysqlx.sock.lock2. Fehler bei der Unix-Socket-Lock-Datei:
Fehler:
– 'Die Unix-Socket-Lock-Datei /var/run/mysqld/mysqld.sock.lock konnte nicht erstellt werden.'
– 'Die Unix-Socket-Lock-Datei kann nicht eingerichtet werden.'
Lösung: Stellen Sie sicher, dass es keine Berechtigungsprobleme oder vorhandene Sperrdateien gibt. Verwenden Sie die obigen Befehle, um das Problem zu beheben.
3. Serverabbruch:
Fehler: 'Abbruch'
Lösung: Befolgen Sie die Schritte zum Festlegen von Berechtigungen und Entfernen vorhandener Sperrdateien, wie oben gezeigt.
4. Vorhandener MySQL-Prozess:
Fehler:
sudo mysqld_safe --skip-grant-tables &
[2] 6050
2024-06-26T10:02:00.665573Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2024-06-26T10:02:00.683616Z mysqld_safe A mysqld process already exists
[1]+ Exit 1 sudo mysqld_safe --skip-grant-tablesLösung: Stellen Sie sicher, dass der MySQL-Server gestoppt ist, bevor Sie versuchen, im abgesicherten Modus zu starten. Gebrauchen:
sudo systemctl stop mysql5. Fehler beim Festlegen des neuen Passworts:
Fehler:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statementLösung: Stellen Sie sicher, dass Sie Folgendes ausführen:
FLUSH PRIVILEGES;bevor Sie ein neues Passwort festlegen.
Überprüfen Sie das MySQL-Fehlerprotokoll unter '/var/log/mysql/error.log' für detailliertere Informationen, wenn die Probleme weiterhin bestehen.
FAQ zum Zurücksetzen des MySQL-Root-Passworts auf einem Linux-Server
F: Warum muss ich den MySQL-Dienst beenden?
A: Das Beenden des MySQL-Dienstes stellt sicher, dass beim Zurücksetzen des Root-Passworts keine neuen Verbindungen hergestellt werden, und bietet eine stabile Umgebung für das Vornehmen von Änderungen.
F: Was bewirkt 'mysqld_safe –skip-grant-tables &'?
A: Dieser Befehl startet MySQL im abgesicherten Modus mit deaktivierten Grant-Tabellen, sodass Sie ohne Passwort eine Verbindung herstellen und das Root-Passwort zurücksetzen können.
F: Warum muss ich Berechtigungen für das MySQL-Verzeichnis erstellen und festlegen?
A: Das Erstellen und Festlegen von Berechtigungen für das Verzeichnis stellt sicher, dass MySQL ordnungsgemäß gestartet werden kann, ohne dass Berechtigungsprobleme oder Socket-Dateikonflikte auftreten.
F: Was ist der Zweck des Befehls 'FLUSH PRIVILEGES'?
A: 'FLUSH PRIVILEGES' lädt die Grant-Tabellen in MySQL neu und stellt sicher, dass alle Änderungen an den Benutzerrechten sofort wirksam werden.
F: Wie überprüfe ich, ob das neue Root-Passwort funktioniert?
A: Sie können das neue Passwort verifizieren, indem Sie sich mit dem Befehl 'mysql -p' bei MySQL anmelden und das neue Passwort eingeben, wenn Sie dazu aufgefordert werden.
F: Warum muss ich den MySQL-Dienst neu starten, nachdem ich das Passwort zurückgesetzt habe?
A: Durch den Neustart des MySQL-Dienstes werden die am Root-Kennwort vorgenommenen Änderungen übernommen und sichergestellt, dass der Server mit aktualisierten Konfigurationen ausgeführt wird.
F: Was passiert, wenn ich den mysqld_safe Prozess nicht beendige?
A: Wenn der mysqld_safe Prozess nicht beendet wird, kann MySQL im abgesicherten Modus weiter ausgeführt werden, was ein Sicherheitsrisiko darstellen und den normalen Betrieb verhindern kann.
F: Was bewirkt der Befehl 'sudo mysql'?
A: Wenn Sie 'sudo mysql' ausführen, führen Sie den MySQL-Client effektiv als Root-Benutzer des Betriebssystems aus, nicht als Root-Benutzer der MySQL-Datenbank. Auf diese Weise kann der Root-Benutzer des Betriebssystems ohne Kennwort auf den MySQL-Server zugreifen, wenn dies konfiguriert ist.
F: Was ist die Unix-Socket-Authentifizierung?
A: Die Unix-Socket-Authentifizierung ermöglicht es MySQL, Benutzer basierend auf ihrem Unix-Benutzerkonto (Linux) zu authentifizieren und dem Root-Benutzer des Betriebssystems bei richtiger Konfiguration passwortlosen Zugriff zu gewähren.
F: Warum erhalte ich die Fehlermeldung "Zugriff verweigert", wenn ich "mysql -uroot -ppassword" verwende?
A: Dieser Fehler tritt auf, weil MySQL versucht, sich mit einem Kennwort zu authentifizieren, der Root-Benutzer jedoch möglicherweise für die Verwendung auth_socket Plug-ins konfiguriert ist, für das kein Kennwort erforderlich ist.
F: Wie wechsle ich von der auth_socket- zur Passwortauthentifizierung für den MySQL-Root-Benutzer?
A: Sie können wechseln, indem Sie die Authentifizierungsmethode des Root-Benutzers in MySQL mit dem Befehl 'ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password' aktualisieren; ’.


