Jak zmienić hasło MySQL dla użytkowników root i zwykłych
Zapomniałeś hasła root MySQL? Nie martw się — zdarza się to nawet najbardziej doświadczonym administratorom. W tym artykule podpowiemy, jak zresetować hasło root MySQL dla różnych wersji: MySQL 5.7 oraz MySQL 8.0+. Dodatkowo wyjaśnimy, jak zmienić hasło dla zwykłego użytkownika bazy danych.
W przypadku MariaDB zapoznaj się z naszym oddzielnym przewodnikiem.
Root to główny administrator bazy danych. Posiada pełny dostęp do wszystkich baz, tabel, użytkowników i ustawień. Utrata tego hasła może uniemożliwić zarządzanie bazą danych, w tym wprowadzanie kluczowych zmian i wykonywanie ważnych poleceń.
Wszystkie operacje będą wykonywane w wierszu poleceń za pośrednictwem SSH. Więcej informacji na temat łączenia się z serwerem za pomocą tego protokołu można znaleźć w tym artykule
Zanim przejdziesz do resetowania hasła, sprawdź plik: /root/.my.cnf
Często znajduje się w nim aktualne hasło root do MySQL.
Połączenie można sprawdzić za pomocą polecenia:
mysql -u root -p
Następnie należy podać hasło z pliku .my.cnf
.
Jeśli to hasło nie działa, skorzystaj z instrukcji poniżej.
Resetowanie hasła
Krok 1: Zatrzymaj MySQL
Aby zresetować hasło, najpierw zatrzymaj serwer MySQL. Wpisz odpowiednią komendę:
- Dla Debian i Ubuntu:
systemctl stop mysql
- Dla CentOS/RockyLinux/AlmaLinux:
systemctl stop mysqld
Krok 2: Uruchom serwer w trybie bezpiecznym
- Dla Debian i Ubuntu:
Upewnij się, że katalog używany przez MySQL istnieje i ma konkretnego właściciela:
mkdir -p /var/run/mysqld/ && chown -R mysql: /var/run/mysqld/
Następnie uruchom MySQL bez sprawdzania uprawnień:
mysqld_safe --skip-grant-tables --socket=/var/run/mysqld/mysqld.sock &
Jeśli MySQL uruchomi się poprawnie, zobaczysz podobny komunikat:
2024-11-28T23:50:19.298141Z mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Aby wrócić do wiersza poleceń, użyj kombinacji klawiszy „Ctrl + C”.
- Dla CentOS/RockyLinux/AlmaLinux:
sudo -u mysql mysqld --skip-grant-tables --socket=/var/run/mysqld/mysqld.sock &