Um Mehrbenutzerzugriff auf eine Reihe von Datenbanken bereitzustellen, wurde ein relationales Datenbankverwaltungssystem entwickelt, das auf einem Server läuft und als MySQL bezeichnet wird. MySQL wird unter der GNU General Public License entwickelt und sein Quellcode ist unter den definierten Bedingungen verfügbar. MySQL ist eine beliebte Datenbankwahl für die Verwendung in Webanwendungen und funktioniert sehr gut mit cPanel-Hosting-Konten, um Daten beliebiger Websites zu speichern. Und angenommen, Sie haben das MySQL-Root-Passwort vergessen und können nicht auf Ihren MySQL-Dienst zugreifen, dann müssen Sie das Passwort des MySQL-Root-Benutzers zurücksetzen, indem Sie die folgenden Schritte ausführen, die in diesem Artikel erklärt werden.
Schauen wir uns die Schritte zum Zurücksetzen des MYSQL-Root-Passworts für den Plain-Server, den cPanel-Server und den Plesk-Server an.
MySQL-Root-Passwort für Plain Server zurücksetzen
Schritte zum Zurücksetzen des MySQL-Root-Passworts für Plain Server auf Centos 6 Plain.
Schritt 1: [email protected] [~]# /etc/init.d/mysqld stop Oder [email protected] [~]# Service mysqld stop
Schritt 2: Ohne Passwort zum MySQL-Server starten:
[email protected] [~]# mysqld_safe –skip-grant-tables &
Schritt 3: [email protected] [~]# mysql
Danach können Sie die mysql-Eingabeaufforderung abrufen und dann den folgenden Befehl ausführen.
Schritt 4: mysql>use mysql;
Schritt 5: mysql> AKTUALISIEREN user SET password=PASSWORD('NEWPASSWORD') WHERE User='root';
Schritt 6: mysql> beenden
Schritt 7: [email protected] [~]# /etc/init.d/mysqld stop
Schritt 8: [email protected] [~]# /etc/init.d/mysqld start
Jetzt können Sie mit
auf Ihren MySQL-Dienst zugreifenSchritt 9: [[email protected] ~]# mysql -u root -p
Auf Centos 7 einfach unter den Befehlen
Über SystemD müssen Sie den folgenden Befehl verwenden
Schritt 1: [email protected] [~]# systemctl stop mysql
Schritt 2: [email protected] [~]# systemctl set-environment MYSQLD_OPTS="–skip-grant-tables"
Schritt 3: [email protected] [~]# systemctl mysql starten
Schritt 4: [email protected] [~]# systemctl status mysql
Schritt 5: [email protected] [~]# mysql -u root
Schritt 6: mysql> benutze mysql;
Schritt 7: mysql> UPDATE user SET password=PASSWORD('NEWPASSWORD') WHERE User='root';
Schritt 8: mysql> FLUSH-RECHTE;
Schritt 9: [email protected] [~]# systemctl stop mysql
Schritt 10: [email protected] [~]# systemctl unset-environment MYSQLD_OPTS
Schritt 11: [email protected] [~]# systemctl mysql starten
Jetzt können Sie mit
auf Ihren MySQL-Dienst zugreifenSchritt 12: [[email protected] ~]# mysql -u root –p
Durch SysVinit müssen Sie den folgenden Befehl verwenden
- [email protected] [~]# /etc/init.d/mysqld stop
- [email protected] [~]# mysqld_safe –skip-grant-tables &
- [email protected] [~]# systemctl status mysql
- [email protected] [~]# mysql -u root
- mysql> benutze mysql;
- mysql> UPDATE user SET password=PASSWORD(‘NEWPASSWORD’) WHERE User=’root’;
- mysql> FLUSH-RECHTE;
- [email protected] [~]# /etc/init.d/mysql stop
- [email protected] [~]# /etc/init.d/mysql start
Jetzt können Sie mit
auf Ihren MySQL-Dienst zugreifen[[email protected] ~]# mysql -u root –p
Schritte für den cPanel-Server
Schritt 1: Auf allen Servern, auf denen cPanel/WHM ausgeführt wird, die Root-MySQL-Anmeldeinformationen werden lokal in einer Datei gespeichert. Diese Datei ist nur für Root-Benutzer zugänglich.
Sie müssen sich als Root-Benutzer bei der CLI des Servers anmelden und die Anmeldeinformationen in der /root/.my.cnf-Datei anzeigen
Befehl-
[email protected] [~]# cat /root/.my.cnf
Das sollte ein Ergebnis ausgeben, das das MySQL-Passwort enthält , die etwa so aussieht:
[email protected] [~]# cat /root/.my.cnf
[Kunde] Passwort =„Passwort“
user=root
Notieren Sie sich das aktuelle Passwort.
Schritt 2: Das Passwort kann auch als Root-MySQL-Passwort von WHM
wiederhergestellt werden- Bei WHM anmelden
- Zur Option „SQL-Dienste“ wechseln
- Wählen Sie das MySQL-Root-Passwort aus
- Geben Sie das neue Passwort ein und klicken Sie auf die Schaltfläche Passwort ändern.
- Dieser Vorgang ändert das MySQL-Root-Passwort des Servers.
Schritt 3: Wenn beide oben genannten Schritte zum Zurücksetzen des Root-Passworts nicht funktionieren, befolgen Sie die Schritte zum Zurücksetzen des Passworts für den Plain-Server.
Schritte für den Plesk-Server
Auf einem Plesk-Server ist der Administrator der Hauptbenutzer.
Hinweis:Diese Lösung gilt für eine Situation, in der das Passwort des Benutzers „admin“@„localhost“ manuell geändert wurde.
Setzen Sie das MySQL-Admin-Passwort gleich dem in /etc/psa/.psa.shadow angegebenen Passwort Datei.
Schritte:
Schritt 1: Stellen Sie über SSH eine Verbindung zum Plesk-Server her.
Schritt 2: Laden Sie das Skript für die automatische MySQL-Admin-Wiederherstellung herunter:
# curl -LO https://plesk.zendesk.com/hc/article_attachments/360042955514/213364309-restore-admin-user.php.tar.gz
Schritt 3: Entpacken:
# tar xf 213364309-restore-admin-user.php.tar.gz
Schritt 4: Führen Sie das Skript aus:
# plesk php 213364309-restore-admin-user.php
Schritt 5: Versuchen Sie erneut, auf Plesk zuzugreifen. Wenn die automatisierte Lösung nicht geholfen hat, wenden Sie die manuelle Lösung an.
Überprüfen wir die manuelle Lösung:
Schritt 1: Stellen Sie über SSH eine Verbindung zum Plesk-Server her
Schritt 2: Überprüfen Sie mit dem folgenden Befehl, ob die Direktive old-passwords in der MySQL-Konfigurationsdatei my.cnf existiert (keine Ausgabe bedeutet, dass sie nicht existiert):
# grep -ir alte Passwörter /etc/my*
Wenn es vorhanden ist, entfernen Sie es mit einem Texteditor.
Schritt 3: Holen Sie sich ein gehashtes Passwort des MySQL-Admin-Benutzers und kopieren Sie es in die Zwischenablage:
Hinweis:Stellen Sie sicher, dass in der Datei nur ein Passwort angegeben ist.
# grep AES /etc/psa/.psa.shadow
Hier ist ein Beispiel für ein gehashtes Passwort:
$AES-128-CBC$ZmY/EEpy1+TwCNq5kalqSA==$Pd02kf4TTlpXdi/qyeo92w==
Schritt 4: Meine.cnf-Datei ändern:
4.1. Öffnen Sie die Datei my.cnf in einem Texteditor. In diesem Beispiel verwenden wir den vi-Editor:
- Auf CentOS/RHEL-basierten Distributionen
# vi /etc/my.cnf
- Auf Debian/Ubuntu-basierten Distributionen
# vi /etc/mysql/my.cnf
4.2. Fügen Sie die Zeile skip-grant-tables unter dem Abschnitt [mysqld] hinzu:
[mysqld]
skip-grant-tables <…>
4.3. Speichern Sie die Änderungen und schließen Sie die Datei.
Schritt 5: Starten Sie MySQL neu. Der Befehl hängt von der MySQL-Version und dem Betriebssystem ab:
# service mariadb neustarten
# mysql-Dienst neu starten
# mysqld-Dienst neu starten
Schritt 6: Mit MySQL verbinden:
# Plesk-Datenbank
Schritt 7: Wechseln Sie zur MySQL-Datenbank:
mysql> verwenden Sie mysql;
Schritt 8: Finden Sie die Version von MySQL:
mysql> SELECT VERSION();
Schritt 9: Laden Sie den ACL-Tabellen-Cache neu:
mysql> FLUSH-RECHTE;
Hinweis:Nachdem der obige Befehl ausgeführt wurde, verlassen Sie die aktuelle MySQL-Sitzung nicht, da dieser Befehl Grant-Tabellen zurücklädt.
Schritt 10: Stellen Sie den MySQL-Administratorbenutzer wieder her:
- Für MySQL 5.1 bis 5.6 und MariaDB 5.5 bis 10.4
1. Löschen Sie den aktuellen Admin-Benutzer :
mysql> DROP USER ‘admin’@’localhost’;
2. Erstellen Sie einen neuen Admin-Benutzer mit dem gehashten Passwort ab Schritt 3:
mysql> ERSTELLEN SIE BENUTZER „admin“@„localhost“, IDENTIFIZIERT DURCH „HASHED_PASSWORD_FROM_STEP_3“;
3. Erteilen Sie alle Berechtigungen an den Admin-Benutzer:
mysql> GRANT ALL ON *.* TO ‘admin’@’localhost’ WITH GRANT OPTION;
4. Beenden Sie MySQL:
mysql> beenden
- Für MySQL 5.7 bis 8.0
1. Löschen Sie den aktuellen Admin Benutzer:
mysql> DROP USER ‘admin’@’localhost’;
2. Erstellen Sie einen neuen Admin-Benutzer mit dem gehashten Passwort ab Schritt 3:
mysql> ERSTELLEN SIE BENUTZER „admin“@„localhost“, IDENTIFIZIERT MIT „mysql_native_password“ DURCH „HASHED_PASSWORD_FROM_STEP_3“;
3. Gewähren Sie dem Admin-Benutzer alle Berechtigungen:
mysql> GRANT ALL ON *.* TO ‘admin’@’localhost’ WITH GRANT OPTION;
4. Beenden Sie MySQL:
mysql> beenden
Schritt 11: Entfernen Sie die skip-grant-tables Zeile aus der Datei my.cnf (Schritt 4).
Schritt 12: Starten Sie MySQL neu:
# service mariadb neustarten
# mysql-Dienst neu starten
# mysqld-Dienst neu starten