Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zresetuj hasło root serwera MySQL

Domyślnie MySQL Server zostanie zainstalowany z administratorem root bez hasła. Możesz połączyć się z serwerem MySQL jako root bez wymagania hasła lub wprowadzając puste hasło. Jednakże, jeśli ustawiłeś hasło roota i zapomniałeś lub nie możesz go przypomnieć, będziesz musiał zresetować hasło roota dla MySQL.

Podręcznik MySQL Reference zawiera szczegółowe instrukcje resetowania hasła dla roota, które są następujące:

Procedura w systemie Windows:

  1. Zaloguj się do systemu Windows, w którym działa MySQL jako administrator.
  2. Zatrzymaj serwer MySQL, jeśli jest uruchomiony. W przypadku serwera działającego jako usługa systemu Windows przejdź do Menedżera usług:

    Menu Start -> Panel sterowania -> Narzędzia administracyjne -> Usługi

    Następnie znajdź usługę MySQL na liście i zatrzymaj ją.

    Jeśli twój serwer nie działa jako usługa, może być konieczne użycie Menedżera zadań, aby wymusić jego zatrzymanie.

  3. Utwórz plik tekstowy i umieść w nim następujące polecenia, każde w jednym wierszu:
    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

    Zawartość pliku nazwanego przez opcję --init-file jest wykonywana podczas uruchamiania serwera, zmieniając hasło roota. Po pomyślnym uruchomieniu serwera należy usunąć C:\mysql-init.txt.

    Jeśli zainstalowałeś MySQL za pomocą Kreatora instalacji MySQL, może być konieczne określenie opcji --defaults-file:

    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

    Odpowiednie ustawienie --defaults-file można znaleźć za pomocą Menedżera usług:

    Menu Start -> Panel sterowania -> Narzędzia administracyjne -> Usługi

    Znajdź usługę MySQL na liście, kliknij ją prawym przyciskiem myszy i wybierz opcję Właściwości. Pole Ścieżka do pliku wykonywalnego zawiera ustawienie --defaults-file. Pamiętaj, aby podać argument --init-file z pełną ścieżką systemową do pliku, niezależnie od bieżącego katalogu roboczego

  6. Zatrzymaj serwer MySQL, a następnie uruchom go ponownie w trybie normalnym. Jeśli serwer MySQL działa jako usługa, uruchom go z okna Usługi systemu Windows. Jeśli uruchamiasz serwer ręcznie, użyj dowolnego polecenia, którego zwykle używasz.
  7. Połącz się z serwerem MySQL, używając nowego hasła. Pamiętaj też, aby po zakończeniu usunąć plik mysql-init.txt.

W środowisku Unix i Linux procedura resetowania hasła roota wygląda następująco:

  1. Zaloguj się do systemu Unix jako użytkownik root Unix lub ten sam użytkownik, na którym działa serwer mysqld.
  2. Zlokalizuj plik .pid, który zawiera identyfikator procesu serwera. Dokładna lokalizacja i nazwa tego pliku zależy od twojej dystrybucji, nazwy hosta i konfiguracji. Typowe lokalizacje to /var/lib/mysql/, /var/run/mysqld/ i /usr/local/mysql/data/. Ogólnie nazwa pliku ma rozszerzenie .pid i zaczyna się od mysqld lub nazwy hosta systemu.

    Zatrzymaj serwer MySQL, wysyłając normalny kill (nie kill -9) do procesu mysqld, używając ścieżki do pliku .pid w następującym poleceniu:

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

    Zwróć uwagę na użycie backticków zamiast cudzysłowów w poleceniu cat; powodują one podstawienie wyjścia cat do polecenia kill.

  3. Utwórz plik tekstowy i umieść w nim następujące polecenie w jednym wierszu:
    UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
    FLUSH PRIVILEGES;

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

    Zapisz plik pod dowolną nazwą. W tym przykładzie plik będzie miał postać ~/mysql-init.

  4. Zrestartuj serwer MySQL ze specjalną opcją --init-file=~/mysql-init:
    shell> mysqld_safe --init-file=~/mysql-init &

    Zawartość pliku init jest wykonywana podczas uruchamiania serwera, zmieniając hasło roota. Po pomyślnym uruchomieniu serwera należy usunąć ~/mysql-init.

  5. Zrestartuj serwer normalnie. Połącz się z serwerem MySQL, używając nowego hasła.

Alternatywnie, na dowolnej platformie, klient mysql może być użyty do ustawienia nowego hasła, chociaż jest to mniej bezpieczny sposób resetowania hasła (szczegółowe instrukcje tutaj):

  1. Zatrzymaj mysqld i uruchom go ponownie za pomocą opcji --skip-grant-tables --user=root (użytkownicy Windows pomijają część --user=root).
  2. Połącz się z serwerem mysqld za pomocą tego polecenia:
    shell> mysql -u root
  3. Wydaj następujące instrukcje w kliencie mysql:
    mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd')
        ->                   WHERE User='root';
    mysql> FLUSH PRIVILEGES;

    Zastąp 'newpwd' aktualnym hasłem roota, którego chcesz użyć.

  4. Powinieneś być w stanie połączyć się przy użyciu nowego hasła.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MIN/MAX vs ORDER BY i LIMIT

  2. Jak zresetować hasło roota MySQL

  3. Czy można odwoływać się do jednej kolumny jako wielu kluczy obcych?

  4. wiele zapytań w tej samej tabeli, ale w różnych kolumnach mysql

  5. Host „xxx.xx.xxx.xxx” nie może połączyć się z tym serwerem MySQL