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

Setzen Sie das Root-Passwort des MySQL-Servers zurück

Standardmäßig wird MySQL Server mit Root-Superuser ohne Passwort installiert. Sie können sich als root mit dem MySQL-Server verbinden, ohne ein Passwort zu benötigen, oder indem Sie ein leeres Passwort eingeben. Wenn Sie jedoch das Passwort für root festgelegt haben und das Passwort vergessen oder sich nicht mehr daran erinnern können, müssen Sie das root-Passwort für MySQL zurücksetzen.

Das MySQL-Referenzhandbuch enthält detaillierte Schritte zum Zurücksetzen des Passworts für root, die wie folgt sind:

Die Vorgehensweise unter Windows:

  1. Melden Sie sich als Administrator bei dem Windows-System an, auf dem MySQL ausgeführt wird.
  2. Halten Sie den MySQL-Server an, falls er ausgeführt wird. Gehen Sie für einen Server, der als Windows-Dienst ausgeführt wird, zum Dienste-Manager:

    Startmenü -> Systemsteuerung -> Verwaltung -> Dienste

    Suchen Sie dann den MySQL-Dienst in der Liste und stoppen Sie ihn.

    Wenn Ihr Server nicht als Dienst ausgeführt wird, müssen Sie möglicherweise den Task-Manager verwenden, um das Beenden zu erzwingen.

  3. Erstellen Sie eine Textdatei und platzieren Sie die folgenden Befehle darin jeweils in einer einzelnen Zeile:
    UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
    FLUSH PRIVILEGES;
    
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
    
    Save the file with any name. For this example the file will be C:\mysql-init.txt.
  4. Open a console window to get to the DOS command prompt: Start Menu -> Run -> cmd
  5. If MySQL is installed in C:\mysql. If MySQL is installed in another location, adjust the following commands accordingly. At the DOS command prompt, execute this command:
    C:\> C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt

    Der Inhalt der durch die Option --init-file benannten Datei wird beim Serverstart ausgeführt und ändert das Root-Passwort. Nachdem der Server erfolgreich gestartet wurde, sollten Sie C:\mysql-init.txt.

    löschen

    Wenn Sie MySQL mit dem MySQL-Installationsassistenten installiert haben, müssen Sie möglicherweise eine Option --defaults-file angeben:

    C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe"
             --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini"
             --init-file=C:\mysql-init.txt

    Die entsprechende --defaults-file-Einstellung finden Sie im Dienste-Manager:

    Startmenü -> Systemsteuerung -> Verwaltung -> Dienste

    Suchen Sie den MySQL-Dienst in der Liste, klicken Sie mit der rechten Maustaste darauf und wählen Sie die Option Eigenschaften. Das Feld Pfad zur ausführbaren Datei enthält die Einstellung --defaults-file. Stellen Sie sicher, dass Sie das Argument --init-file mit dem vollständigen Systempfad zu der Datei angeben, unabhängig von Ihrem aktuellen Arbeitsverzeichnis

  6. Halten Sie den MySQL-Server an und starten Sie ihn dann wieder im normalen Modus neu. Wenn der MySQL-Server als Dienst ausgeführt wird, starten Sie ihn über das Windows-Dienstefenster. Wenn Sie den Server manuell starten, verwenden Sie den Befehl, den Sie normalerweise verwenden.
  7. Verbinden Sie sich mit dem MySQL-Server, indem Sie das neue Passwort verwenden. Denken Sie auch daran, die mysql-init.txt-Datei zu löschen, wenn Sie fertig sind.

Für Unix- und Linux-Umgebungen ist das Verfahren zum Zurücksetzen des Root-Passworts wie folgt:

  1. Melden Sie sich beim Unix-System entweder als Unix-Root-Benutzer oder als derselbe Benutzer an, unter dem der mysqld-Server läuft.
  2. Suchen Sie die .pid-Datei, die die Prozess-ID des Servers enthält. Der genaue Speicherort und Name dieser Datei hängen von Ihrer Distribution, Ihrem Hostnamen und Ihrer Konfiguration ab. Häufige Speicherorte sind /var/lib/mysql/, /var/run/mysqld/ und /usr/local/mysql/data/. Im Allgemeinen hat der Dateiname die Erweiterung .pid und beginnt entweder mit mysqld oder dem Hostnamen des Systems.

    Stoppen Sie den MySQL-Server, indem Sie einen normalen Kill (nicht kill -9) an den mysqld-Prozess senden, indem Sie den Pfadnamen der .pid-Datei im folgenden Befehl verwenden:

    shell> kill `cat /mysql-data-directory/host_name.pid`

    Beachten Sie die Verwendung von Backticks anstelle von Anführungszeichen mit dem cat-Befehl; diese bewirken, dass die Ausgabe von cat in den kill-Befehl eingesetzt wird.

  3. Erstellen Sie eine Textdatei und platzieren Sie den folgenden Befehl darin in einer einzigen Zeile:
    UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
    FLUSH PRIVILEGES;

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

    Speichern Sie die Datei unter einem beliebigen Namen. In diesem Beispiel lautet die Datei ~/mysql-init.

  4. Starten Sie den MySQL-Server mit der speziellen Option --init-file=~/mysql-init neu:
    shell> mysqld_safe --init-file=~/mysql-init &

    Der Inhalt der Init-Datei wird beim Serverstart ausgeführt und ändert das Root-Passwort. Nachdem der Server erfolgreich gestartet wurde, sollten Sie ~/mysql-init.

  5. löschen
  6. Starten Sie den Server normal neu. Verbinden Sie sich mit dem neuen Passwort mit dem MySQL-Server.

Alternativ kann auf jeder Plattform der mysql-Client verwendet werden, um das neue Passwort festzulegen, obwohl es weniger sicher ist, das Passwort zurückzusetzen (detaillierte Anleitung hier):

  1. Halten Sie mysqld an und starten Sie es mit den Optionen --skip-grant-tables --user=root neu (Windows-Benutzer lassen den Teil --user=root weg).
  2. Stellen Sie mit diesem Befehl eine Verbindung zum mysqld-Server her:
    shell> mysql -u root
  3. Geben Sie die folgenden Anweisungen im MySQL-Client aus:
    mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd')
        ->                   WHERE User='root';
    mysql> FLUSH PRIVILEGES;

    Ersetzen Sie 'newpwd' durch das eigentliche Root-Passwort, das Sie verwenden möchten.

  4. Sie sollten sich mit dem neuen Passwort verbinden können.