Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So setzen Sie das Passwort des MySQL-Root-Benutzers zurück

ServerPilot konfiguriert MySQL, um Datenbanken auf Ihrem Server zu verwalten. Normalerweise, wenn Sie als root bei SSH angemeldet sind Benutzer müssen Sie nur Folgendes an der Eingabeaufforderung der Befehlszeile (SSH) eingeben, um auf MySQL zuzugreifen:

mysql

Dieser Befehl verweist automatisch auf die Datei, die das MySQL-root enthält MySQL-Passwort des Benutzers, damit Sie es nicht eingeben müssen. Das Root-Passwort für MySQL ist in dieser Datei enthalten:

/root/.my.cnf

Sollten Sie dieses Passwort aus irgendeinem Grund ändern müssen, müssen einige Schritte unternommen werden. Bitte beachten Sie, dass es hier zwei verschiedene Prozesse gibt:Einen für eine Situation, in der das Root-MySQL-Passwort derzeit funktioniert, und einen für ein nicht funktionierendes Root-MySQL-Passwort.

Hinweis:Das MySQL-Fehlerprotokoll ist ein guter Ort, um Probleme mit MySQL zu finden, und befindet sich hier:

/var/log/mysql/error.log
Warnung! Wir empfehlen, einen Server-Snapshot zu erstellen, bevor Sie Aufgaben wie diese ausführen.

Ändern eines funktionierenden MySQL-Root-Passworts

Dieser Abschnitt behandelt das Ändern eines funktionierenden MySQL-Root-Passworts, was bedeutet, dass Sie sich als root bei MySQL anmelden können Benutzer, indem Sie einfach mysql eingeben an der SSH-Eingabeaufforderung. Es wird keine Ausfallzeit für diesen Prozess geben, wenn diese Schritte befolgt werden.

Melden Sie sich als root bei SSH an Benutzer, und melden Sie sich dann bei MySQL an, indem Sie Folgendes eingeben:

mysql

Geben Sie an der MySQL-Eingabeaufforderung Folgendes ein, aber ersetzen Sie put-your-new-password-here mit dem eigentlichen Passwort, das Sie verwenden möchten. Sie müssen die einfachen Anführungszeichen um das neue Passwort herum lassen. Bitte notieren Sie sich das Passwort, da Sie es im nächsten Schritt in einer Datei ablegen müssen.

SET PASSWORD FOR root@'localhost' = PASSWORD('put-your-new-password-here');

Beenden Sie MySQL, indem Sie Folgendes eingeben:

quit

Als Nächstes müssen Sie die Datei aktualisieren, die den MySQL-Stamm enthält das Passwort des Benutzers, damit Sie sich per SSH als root auf Ihren Server einloggen können und führen Sie mysql aus Befehl, ohne ein Passwort einzugeben.

sudo nano /root/.my.cnf
Weitere Informationen zur Verwendung des nano Texteditor finden Sie in unserer Anleitung.

Aktualisieren Sie das Passwortfeld mit dem neuen Passwort, das Sie oben eingegeben haben, speichern Sie und verlassen Sie den Texteditor.

Testen Sie abschließend, ob das neue Passwort funktioniert:

mysql

Alles klar!

Ändern eines verlorenen oder nicht funktionierenden MySQL-Root-Passworts

Dieser Abschnitt behandelt die Wiederherstellung des Root-Zugriffs auf MySQL, wenn dieser Fehler auftritt:

ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)
Warnung! Durch diesen Vorgang wird MySQL für kurze Zeit offline geschaltet. Am besten führen Sie dies außerhalb der Spitzenzeiten durch, wenn Ihre Benutzer am wenigsten betroffen sind.

Melden Sie sich über SSH als root bei Ihrem Server an user und beenden Sie MySQL, indem Sie Folgendes eingeben:

sudo service mysql stop

Führen Sie dann den folgenden Befehl aus:

sudo test ! -e /var/run/mysqld && sudo mkdir -p /var/run/mysqld && sudo chown mysql:mysql /var/run/mysqld

Es wird keine Ausgabe zurückgegeben. Starten Sie MySQL in einem speziellen Modus, indem Sie Folgendes eingeben:

sudo mysqld --skip-grant-tables --skip-networking &

Die Ausgabe sollte der folgenden ähnlich sein, obwohl die angezeigte Zahl anders sein wird:

sudo mysqld --skip-grant-tables --skip-networking &
[1] 14744

Sie kehren dann zur Standard-SSH-Eingabeaufforderung zurück. Geben Sie nun Folgendes ein, um sich bei MySQL anzumelden:

mysql

Sie werden nicht nach einem Passwort gefragt und es sollte etwa so aussehen:

~# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.25-0ubuntu0.16.04.2-log (Ubuntu)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
Owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

Führen Sie den folgenden Befehl aus, mit dem Sie das Kennwort ändern können:

FLUSH PRIVILEGES;

Was ergibt:

Query OK, 0 rows affected (0.00 sec)

Als nächstes setzen wir das eigentliche Passwort zurück, indem wir put-your-new-password-here ändern zu Ihrem eigentlichen Passwort. Bitte notieren Sie sich das von Ihnen festgelegte Passwort, da wir es in die /root/.my.cnf eingeben müssen Datei, wenn wir fertig sind, und behalten Sie bitte auch die einfachen Anführungszeichen um das neue Passwort bei.

SET PASSWORD FOR root@'localhost' = PASSWORD('put-your-new-password-here');

Sie sollten eine Benachrichtigung wie die folgende erhalten:

Query OK, 0 rows affected, 1 warning (0.00 sec)

Beenden Sie MySQL, indem Sie Folgendes eingeben:

quit

Geben Sie als Nächstes den folgenden Befehl ein:

sudo killall mysqld

Es wird keine Ausgabe zurückgegeben. Jetzt starten wir MySQL ganz normal:

sudo service mysql start

Schließlich, wenn Sie das Passwort von dem geändert haben, was in /root/.my.cnf war , müssen Sie diese Datei aktualisieren. Wenn Sie denselben Wert verwendet haben, müssen Sie diesen Schritt nicht ausführen:

sudo nano /root/.my.cnf

Aktualisieren Sie dort das Passwortfeld, speichern Sie und verlassen Sie den Texteditor.

Sie sollten sich nun erfolgreich als root bei MySQL anmelden können Benutzer durch Eingabe des folgenden Befehls:

mysql