MySQL to jeden z najpopularniejszych systemów zarządzania bazami danych dla aplikacji internetowych. MySQL ma hasło roota lub hasło administratora, tak jak wiele usług internetowych. Hasła roota pozwalają użytkownikom wykonywać dowolne funkcje najwyższego poziomu w bazie danych.
Podczas konfigurowania MySQL zaleca się ustawienie hasła roota do bazy danych ze względów bezpieczeństwa. Nie oznacza to jednak, że nie możesz używać MySQL bez hasła roota. Musisz pomyśleć o zadaniu i zdecydować, czy ustawić hasło roota, czy nie.
Resetowanie hasła root MySQL
Istnieje wiele pytań zadawanych przez użytkowników MySQL na temat „Jak zresetować hasło roota MySQL”. Jeśli ustawiłeś hasło roota, ale niestety zgubiłeś je, ten samouczek artykułu poprowadzi Cię przez proces resetowania hasła roota zarówno w systemie Linux, jak i Windows.
Wymagania wstępne
- Istniejąca baza danych MySQL
- Uprawnienia administratora na komputerze, na którym znajduje się baza danych MySQL
- Dostęp do serwera Windows lub Linux z MySQL
- Interfejs wiersza poleceń lub dostęp do terminala
- Edytor tekstu. (Nie martw się, ponieważ użytkownicy Windows mają domyślnie zainstalowany Notatnik na swoich komputerach, podczas gdy użytkownicy Linuksa mają preinstalowany vim).
Gdy już spełnisz wszystkie wymienione wymagania wstępne, przejdźmy dalej i dowiedzmy się, jak zresetować lub zmienić hasło roota MySQL.
Zrobimy ten proces na dwóch frontach:
- Jak zresetować hasło roota MySQL w Linuksie
- Jak zresetować hasło roota MySQL w Windows
1. Jak zresetować hasło roota MySQL w Linuksie
Krok 1:Zaloguj się do MySQL
Podczas uruchamiania systemu operacyjnego Linux konieczne jest zalogowanie się do tego samego użytkownika, który zwykle uruchamia MySQL. Jest to kluczowe, aby uniknąć błędów, takich jak tworzenie plików należących do użytkownika root, które mogą spowodować uszkodzenie systemu. Jednak równie dobrze możesz zalogować się jako użytkownik root po uruchomieniu serwera MySQL. Aby to zrobić, upewnij się, że uruchamiasz MySQL przy użyciu poniższej składni.
user=fosslinux
Krok 2:Znajdowanie pliku .pid używanego przez usługę MySQL
Następnym krokiem jest zlokalizowanie pliku .pid. W większości systemów Linux są one przechowywane w tej lokalizacji:
/var/lib/mysql or /var/run/mysqld/ or /usr/local/mysql/data/.
Ponieważ nie wszystkie systemy Linux są takie same, możesz wypróbować dowolną z wyżej wymienionych ścieżek i sprawdzić, czy możesz zlokalizować plik. Aby szybko znaleźć plik, możesz zawęzić wyszukiwanie do plików zaczynających się od mysqld (lub nazwę hosta) i kończące się na .pid.
Uwaga: Przeszukiwanie pliku uprości proces; dlatego zalecamy wypróbowanie go.
Po znalezieniu pliku przejdź do następnego kroku
Krok 3:Zabijanie procesu mysqld / .pid
Przed zresetowaniem lub utworzeniem nowego hasła roota musimy najpierw zatrzymać serwer MySQL. Można to zrobić, otwierając terminal i wykonując poniższą linię poleceń:
kill `cat /mysql-data-directory/host_name.pid`
Uwaga: Zastąp mysql-data-directory/host_name.pid z nazwą pliku, którą znaleźliśmy w kroku 2. Ponadto ważne jest określenie całej ścieżki pliku, aby uniknąć błędów.
Dodatkowa wskazówka: Zawsze upewnij się, że używasz klawisza back-tick zamiast klawisza pojedynczego cudzysłowu. Klawisz back-tick znajduje się nad klawiszem tab na większości komputerów i przed jednym klawiszem num.
Krok 4:Tworzenie nowego pliku z hasłami roota
Teraz nadszedł czas, aby otworzyć swój ulubiony edytor tekstu. W naszym przypadku użyjemy edytora tekstu Vima. Otwórz terminal za pomocą skrótu CTRL + ALT + T, a następnie uruchom poniższe polecenie:
sudo vim mysql-init
Uwaga:jeśli po uruchomieniu powyższego polecenia pojawi się błąd, wykonaj to polecenie, aby kontynuować inne procesy:
sudo apt install vim
Teraz dodaj wiersz poniżej w pliku:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
Uwaga: Podczas ręcznego wpisywania powyższej linii do terminala pamiętaj, aby uwzględnić wszystkie średniki i pojedyncze cudzysłowy. Zastąp także „Nowe hasło ” z nowym hasłem, którego chcesz użyć. Na koniec upewnij się, że używasz silnego i bezpiecznego hasła lub zapoznaj się tutaj, aby dowiedzieć się, jak wygenerować silne losowe hasło w systemie Linux.
Powyższe polecenie będzie działać tylko na komputerze hosta, którego używasz podczas uruchamiania polecenia. Jeśli jednak planujesz połączyć się z innym systemem, zaleca się zastąpienie hosta lokalnego odpowiednią lub raczej odpowiednią nazwą hosta, aby polecenie zadziałało. Jeśli tego nie zrobisz, napotkasz błędy.
Po dodaniu nowego pliku do edytora tekstu zapisz go w:
home/mysql-init.
Krok 5:Ponowne uruchomienie serwera MySQL i zastosowanie nowo utworzonego hasła
Czas zastosować zmiany, które wprowadziliśmy do naszego nowo utworzonego hasła. Najpierw zrestartujemy serwer MySQL, wykonując w terminalu poniższe polecenie:
mysqld --init-file=/home/mysql-init &
To polecenie uruchomi MySQL i zastosuje hasło do pliku tekstowego, które utworzyliśmy w poprzednim kroku. W zależności od metody użytej do uruchomienia serwera, może być konieczne dodanie innych opcji, takich jak –defaults-file przed poleceniem init.
Po zastosowaniu nowo utworzonego hasła i ponownym uruchomieniu serwera MySQL nadszedł czas na porządki. Zrobimy to, logując się do serwera MySQL jako użytkownik root i sprawdzając, czy utworzone przez nas hasło rzeczywiście działa. Po potwierdzeniu, że plik działa dobrze, kontynuuj i usuń plik, który utworzyliśmy w kroku 4 powyżej.
2. Jak zresetować hasło roota MySQL w Windows
Jeśli jesteś użytkownikiem systemu Windows i chciałbyś dowiedzieć się, jak zresetować hasło roota MySQL w systemie Windows, przeczytaj ten artykuł do końca.
Krok 1:Zatrzymywanie serwera MySQL.
Przed zatrzymaniem serwera MySQL musisz sprawdzić, czy jesteś zalogowany jako administrator.
- Naciśnij klawisze Win + R w systemie Windows, aby uruchomić okno dialogowe Uruchom typu:
services.msc
- Następnie kliknij OK.
- Przewiń listę usług i znajdź usługę MySQL. Kliknij go prawym przyciskiem myszy, a następnie wybierz opcję Zatrzymaj, jak pokazano na poniższym obrazku:
Krok 2:Otwórz swój ulubiony edytor tekstu
W celach ilustracyjnych użyjemy domyślnego edytora tekstu Notatnika. Nie panikuj jednak, jeśli masz inny edytor tekstu, ponieważ procesy są podobne.
- Teraz kliknij menu Start i wyszukaj Notatnik. Kliknij go, aby uruchomić.
Alternatywnie użyj tej ścieżki, aby znaleźć Notatnik:menu>Akcesoria Windows>Notatnik.
Krok 3:Tworzenie nowego pliku tekstowego hasła za pomocą polecenia hasła
Skopiuj i wklej poniższą składnię do edytora tekstu, aby uniknąć błędów podczas ręcznego pisania:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
Podobnie jak w przypadku Linuksa, upewnij się, że zachowałeś średnik i pojedyncze cudzysłowy oraz zastąp NewPassword frazę z nowym hasłem, którego zamierzasz używać w MySQL.
Kliknij opcję Plik, a następnie Zapisz jako, aby zapisać hasło do pliku tekstowego w katalogu głównym dysku twardego. Zapisz plik jako mysql-init.txt.
W związku z tym komenda localhost może jedynie wprowadzać zmiany hasła w systemie. Dlatego, jeśli zamierzasz zmienić hasło w innym systemie, np. w sieci, zastąp localhost odpowiednią nazwą hosta dla innego systemu.
Krok 4:Uruchom CMD (wiersz polecenia)
- Kliknij klawisze Ctrl + Shift + Esc na klawiaturze
- Wybierz menu pliku, a następnie uruchom nowe zadanie
- Wpisz cmd.exe i zaznacz pole wyboru Uruchom jako administrator
- Kliknij OK, aby uruchomić wiersz poleceń z uprawnieniami administratora.
Krok 5:Ponowne uruchomienie serwera MySQL i zastosowanie nowego pliku konfiguracyjnego
- Używając wiersza poleceń, przejdź do katalogu MySQL:
cd C:\Program Files\MySQL\MySQL Server 8.0\bin
- Następnie wprowadź następujące polecenie:
mysqld --init-file=C:\\mysql-init.txt
Uwaga: Należy wziąć pod uwagę, że przed mysql-init znajdują się dwa ukośniki odwrotne. podpowiedź. Poza tym, jeśli użyłeś innej nazwy niż ta, której użyliśmy do ilustracji w kroku 2 powyżej, powinieneś użyć tej nazwy bezpośrednio po dwóch ukośników odwrotnych, bez spacji.
Po zakończeniu możesz teraz zalogować się do MySQL jako użytkownik root, używając nowo utworzonego hasła.
Upewnij się, że sprawdziłeś dwukrotnie, aby upewnić się, że nowe hasło działa bezbłędnie. Po potwierdzeniu kontynuuj i usuń plik mysql-init.txt, który zapisaliśmy w naszym katalogu C:\.
Ogólne instrukcje resetowania hasła root MySQL
Poprzednie sekcje zawierały szczegółowe instrukcje dotyczące resetowania haseł root MySQL dla systemów Linux i Windows. Alternatywnie, korzystając z dowolnej platformy, możesz użyć klienta MySQL do zresetowania hasła. Należy jednak pamiętać, że ta metoda jest mniej bezpieczna w porównaniu z poprzednimi metodami.
Aby korzystać z klienta MySQL, wykonaj czynności zaznaczone poniżej:
1. Pierwszym krokiem jest zatrzymanie serwera MySQL. Po zatrzymaniu uruchom go ponownie, korzystając z poniższej opcji:
--skip-grant-tables
Ta opcja umożliwi każdemu łączenie się bez hasła, ale ze wszystkimi uprawnieniami, i wyłącza instrukcje dotyczące zarządzania kontem, takie jak ALTER USER i USTAW HASŁO.
Ta opcja jest uważana za niebezpieczną, ponieważ jeśli serwer zaczyna się od –skip-grant-tables opcja, pomiń sieć jest włączane poprzez wyłączenie połączeń zdalnych.
2. Teraz połącz się z serwerem MySQL, uruchamiając poniższe polecenie:
mysql
Uwaga: hasło nie jest wymagane podczas ponownego uruchamiania serwera MySQL przy użyciu klienta MySQL, ponieważ serwer został uruchomiony z -skip-grant-tables .
3. Teraz w kliencie MySQL uruchom poniższe polecenie, aby powiedzieć serwerowi, aby przeładował tabele grantów. Umożliwi to ponowne działanie wstrzymanych wcześniej wyciągów z zarządzania kontem:
mysql> FLUSH PRIVILEGES;
Po uruchomieniu polecenia uruchom polecenie ALTER USER, aby zmienić hasło. Zastąp MyNewPass , z nowym hasłem, którego zamierzasz używać.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Uwaga: Aby zmienić hasło roota dla innego systemu, upewnij się, że zmieniłeś localhost na nazwę hosta systemu.
Teraz możesz połączyć się z serwerem MySQL jako użytkownik root, używając utworzonego przez nas hasła. Następnie zatrzymaj i uruchom ponownie serwer normalnie bez –skip-grant-tables opcji i bez włączania zmiennej pomijania sieci.
To wszystko, co udało Ci się zresetować hasło roota MySQL.
Wniosek
Jeśli wcześniej przypisałeś hasło roota do MySQL, ale je zapomniałeś, możesz je zresetować, przypisując nowe hasło do swojego MySQL, jak pokazano w tym artykule.
Uwaga: MySQL nie wymaga hasła roota do połączenia. Jednak wadą nieprzypisywania hasła roota do serwera MySQL jest to, że nie jest on bezpieczny i możesz stracić cenne przedmioty. Dlatego, jeśli nigdy nie ustawiłeś hasła roota do swojego MySQL, zdecydowanie zalecamy wykonanie powyższych kroków, aby je utworzyć i zabezpieczyć swoje dane i informacje.