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

Der Zugriff auf den MySql-Root-Benutzer ist nicht möglich, selbst nachdem das Kennwort im abgesicherten Modus im Linux-Terminal festgelegt wurde

Gehen Sie wie zuvor in Schritt 2 vor, das heißt, starten Sie den mysql-Daemon im abgesicherten Modus neu.

Geben Sie den Befehl

aus
select user,host,password from mysql.user where user='root';

Ausschneiden und Einfügen der Ausgabe in einen Texteditor zum Vergleich (der gehashten Kennwortspaltenwerte) vor und nach dem Folgenden.

Beachten Sie für jede Zeile den host Säule. Im folgenden Beispiel gehe ich davon aus, dass ich zwei Zeilen habe. Eine Zeile hat % als Host hat der nächste localhost

Für jede Zeile, die einen host hatte Variante geben Sie einen Befehl aus. In meinem obigen Beispiel würde ich also insgesamt 2 Befehle ausgeben, wie zum Beispiel:

SET PASSWORD FOR 'root'@'%' = PASSWORD('MyNewPassword');
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

ausführen

select user,host,password from mysql.user where user='root';

ausschneiden und in den Texteditor einfügen. Beachten Sie die Änderung an den Passwort-Hashes.

Beenden Sie den Daemon aus dem abgesicherten Modus und starten Sie ihn normal neu.

Versuchen Sie, sich mit MyNewPassword

als root anzumelden

Hier sind ein paar Links. Die für SET PASSWORD Syntax , und oft ein nächster Schritt für die GRANT-Syntax .

Für den engen Anwendungsbereich dieser Frage, nämlich das Login, wären die Zuschüsse nicht erforderlich. Aber ohne die richtigen Berechtigungen für Datenbanken wäre man in einer Sandbox und nicht in der Lage, viel zu tun, außer einfachen Befehlen wie select now();

Ich schlage nicht vor, dass Ihr Root-Benutzer keine Berechtigungen hat, sobald das Passwort geändert wurde. Die Grants sind für normale Benutzer notwendig, um sicherzugehen.