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

Ändern und Zurücksetzen des MySQL-Root-Passworts

Es gibt viele Möglichkeiten, das Root-Passwort für die mySQL-Datenbank zurückzusetzen und zu ändern, für den Fall, dass das Passwort vergessen wird oder verloren geht, oder Sie einfach das Passwort mit einem komplexen Algorithmus und regelmäßiger Änderung sicherer machen möchten. Die folgende Anleitung erläutert ausführlich den alternativen Weg im letzten Teil der oben genannten Anleitung, bei dem keine zusätzliche Datei erstellt werden muss:

  1. Melden Sie sich als root auf dem Windows- oder Unix-ähnlichen (Unix, Linux oder BSD) Rechner mit dem MySQL-Server an.
  2. Halten Sie den MySQL-Server an, indem Sie einen der folgenden Befehle verwenden:

    Linux:

    /etc/rc.d/init.d/mysql stop

    FreeBSD:

    /usr/local/etc/rc.d/mysql-server.sh stop
  3. Öffnen Sie das MySQL-Server-Startskript (d. h. mysql-server.sh oder mysql, die Datei, die zum Starten oder Stoppen des MySQL-Servers ausgeführt wird).
  4. ADD –skip-grant-tables bis zum Ende der Zeile, die mysqld_safe enthält Befehl als Parameter.
  5. Starten Sie den MySQL-Server mit dem folgenden Befehl:

    Linux:

    /etc/rc.d/init.d/mysql start

    FreeBSD:

    /usr/local/etc/rc.d/mysql-server.sh start
  6. Alternativ können Sie den MySQL-Server direkt starten und die Bearbeitung mit dem folgenden Befehl überspringen (wenn Sie diesen Schritt verwenden, müssen Sie das MySQL-Startskript nicht ändern):
    mysqld_safe --skip-grant-tables &

    Abhängig von Ihrer Pfadumgebung müssen Sie möglicherweise auf das richtige Verzeichnis verweisen, in dem sich stattdessen mysqld_safe befindet.

  7. Führen Sie die folgenden Befehle aus, um sich als mysql-Benutzer anzumelden und sich mit der mysql-Benutzer-/Berechtigungsdatenbank zu verbinden:
    # mysql -u root mysql
  8. Führen Sie die Aktualisierungsabfragen aus, um das MySQL-Passwort zu ändern:
    mysql> UPDATE user SET Password=PASSWORD('newrootpassword') WHERE User='root';
    mysql> FLUSH PRIVILEGES;

    Hinweis:Ersetzen Sie newrootpassword mit dem neuen Root-Passwort für den MySQL-Server. Flush Privileges sind erforderlich, damit die Passwortänderung sofort wirksam wird.

  9. Beenden Sie den MySQL-Datenbankclient, indem Sie exit eingeben .
  10. Stoppen Sie den MySQL-Server mit den in Schritt 2 aufgeführten Befehlen.
  11. Öffnen Sie das in Schritt 3 bearbeitete Startskript des MySQL-Servers erneut und ENTFERNEN Sie die –skip-grant-tables Parameter, der hinzugefügt wurde.
  12. Starten Sie den MySQL-Server mit dem Befehl aus Schritt 5 oder 6.

Verwenden Sie für Redhat Linux-Benutzer die folgenden Anweisungen als Root-Benutzer des Redhat Linux-Computers:

  1. Stoppen Sie den MySQL-Prozess mit dem Befehl:
    # killall mysqld
  2. Starten Sie den MySQL-Server mit den folgenden Optionen:
    # /usr/libexec/mysqld -Sg --user=root &
  3. Starten Sie den MySQL-Client:
    # mysql

    Sie sollten die folgende Meldung sehen:

    Willkommen beim MySQL-Monitor. Befehle enden mit; oder g.
    Ihre MySQL-Verbindungs-ID ist 1 zur Serverversion:3.xx.xx

    Geben Sie „Hilfe“ oder „h“ für Hilfe ein. Geben Sie „c“ ein, um den Puffer zu löschen.

    mysql>

  4. Mysql-Datenbank verwenden:
    mysql> USE mysql 

    Sie sollten die folgende Meldung sehen:

    Lesen von Tabelleninformationen zur Vervollständigung von Tabellen- und Spaltennamen
    Sie können diese Funktion für einen schnelleren Start mit -A

    deaktivieren

    Datenbank geändert

  5. Aktualisieren Sie dann das Passwort für den Root-Benutzer mit dem folgenden Befehl:
    UPDATE user SET password=password("newpassword") WHERE user="root";

    Ersetzen Sie neues Passwort mit Ihrem Wunschpasswort. Sie sollten die folgende Meldung sehen:

    Abfrage OK, 2 Zeilen betroffen (0,03 Sek.)
    Übereinstimmende Zeilen:2 Geändert:2 Warnungen:0

    Die betroffenen Zeilen können unterschiedlich sein, aber das Query OK sollte vorhanden sein.

  6. Löschen Sie die Datenbankberechtigungen, um sie neu zu laden, damit die Änderungen wirksam werden:
    mysql> flush privileges; 

    Sie sollten das folgende Ergebnis erhalten:

    Abfrage OK, 0 Zeilen betroffen (0,02 Sek.)

  7. Beenden Sie den MySQL-Client, indem Sie exit eingeben .
  8. Beenden Sie den MySQL-Serverprozess, indem Sie killall mysqld eingeben .
  9. Starten Sie dann MySQL erneut:
    /etc/init.d/mysqld start