Przejdź do głównej zawartości

Jak zmienić hasło MariaDB dla użytkowników root i zwykłych

· 3 min aby przeczytać
Customer Care Engineer

Zapomniałeś hasła MariaDB root? Bez niego nie będziesz w stanie zarządzać użytkownikami, bazami danych ani wykonywać krytycznych konfiguracji. W tym artykule dowiesz się nie tylko, jak szybko zresetować hasło root MariaDB, ale także, jak zresetować hasło dla zwykłych użytkowników.

Dla MySQL zapoznaj się z naszym osobnym przewodnikiem.

informacja

Użytkownik root jest głównym administratorem bazy danych. Ma pełny dostęp do wszystkich danych i ustawień. Jeśli zgubisz to hasło, nie będziesz w stanie zmienić niektórych ustawień ani wykonać poleceń.

Wszystkie operacje będą wykonywane przez linię poleceń przez SSH. Szczegółowe instrukcje dotyczące połączenia z serwerem przez SSH znajdziesz w tym artykułe.

Przed rozpoczęciem sprawdź zawartość pliku /root/.my.cnf. Często zawiera on aktualne hasło root do dostępu do MariaDB.

Aby przetestować połączenie, użyj polecenia:

mysql -u root -p 

Następnie wprowadź hasło z pliku .my.cnf

Jeśli hasło nie działa, postępuj zgodnie z poniższymi instrukcjami


Resetowanie hasła

informacja

W większości poniższych poleceń, zamiast mariadb używane będzie polecenie mysql do interakcji z serwerem MariaDB. Dzieje się tak, ponieważ w niektórych systemach operacyjnych, takich jak dystrybucje oparte na RHEL (RockyLinux, AlmaLinux itp.), polecenie mariadb jest niedostępne. Zamiast tego, w celu zapewnienia kompatybilności z MySQL, używane jest polecenie mysql.

Użycie polecenia mysql zapewnia uniwersalną kompatybilność niezależnie od dystrybucji lub implementacji serwera.

Krok 1: Zatrzymaj MariaDB

Aby zresetować hasło, najpierw zatrzymaj serwer MariaDB. Wprowadź następujące polecenie:

systemctl stop mariadb

Krok 2: Uruchom ponownie serwer w trybie bezpiecznym

  • Dla Debiana i Ubuntu:

Upewnij się, że katalog, z którego MariaDB będzie uruchomiony, istnieje i ma właściwego właściciela:

mkdir -p /var/run/mysqld/ && chown -R mysql: /var/run/mysqld/

Uruchom serwer MariaDB bez kontroli dostępu:

mysqld_safe --skip-grant-tables --socket=/var/run/mysqld/mysqld.sock &

Jeśli serwer MariaDB uruchomi się pomyślnie, zobaczysz komunikat podobny do:

2024-11-28T23:50:19.298141Z mysqld_safe Starting mariadb daemon with databases from /var/lib/mysql

Aby kontynuować pracę w linii poleceń, naciśnij „Ctrl + C”

  • Dla CentOS/RockyLinux/AlmaLinux:

Uruchom serwer MariaDB bez kontroli dostępu:

mysqld_safe --skip-grant-tables --socket=/var/lib/mysql/mysql.sock &

Aby kontynuować pracę w linii poleceń, naciśnij „Ctrl + C”.

Krok 3: Połącz się z MariaDB

  • Dla Debiana i Ubuntu:
mysql --socket=/var/run/mysqld/mysqld.sock
  • Dla CentOS/RockyLinux/AlmaLinux:
mysql --socket=/var/lib/mysql/mysql.sock

Krok 4: Zresetuj hasło

Wykonaj następujące polecenia sekwencyjnie:

FLUSH PRIVILEGES;

Dla użytkownika lokalnego:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NoweHasło';

Dla użytkownika sieciowego (jeśli istnieje):

ALTER USER 'root'@'%' IDENTIFIED BY 'NoweHasło';

Następnie:

FLUSH PRIVILEGES;

Zastąp NoweHasło nowym, pożądanym hasłem.

informacja

'użytkownik'@'localhost' – odnosi się do użytkownika lokalnego łączącego się przez gniazdo lub localhost. 'użytkownik'@'%' odnosi się do użytkownika sieciowego z dostępem z dowolnego adresu IP.

Możesz ustawić takie same lub różne hasła dla tych użytkowników. Jeśli użytkownik sieciowy nie istnieje, polecenie @'%' spowoduje błąd.

Wyjdź z MariaDB, używając polecenia exit lub naciskając „Ctrl + D”

Krok 5: Uruchom ponownie MariaDB

Zatrzymaj serwer MariaDB:

  • Dla Debiana i Ubuntu:
mysqladmin shutdown --socket=/var/run/mysqld/mysqld.sock -p

Następnie wprowadź wcześniej ustawione hasło root.

  • Dla CentOS/RockyLinux/AlmaLinux:
mysqladmin shutdown --socket=/var/lib/mysql/mysql.sock -p

Następnie wprowadź wcześniej ustawione hasło root.

Uruchom MariaDB w normalnym trybie:

systemctl start mariadb

Jak zresetować hasło dla zwykłych użytkowników

Jeśli zapomnisz hasła użytkownika innego niż root, podejście jest podobne:

  1. Połącz się z serwerem MariaDB jako root:
mysql -u root -p

Wprowadź hasło root MariaDB.

  1. Wykonaj polecenie zmiany hasła:

Dla użytkownika lokalnego:

ALTER USER 'nazwa_uzytkownika'@'localhost' IDENTIFIED BY 'NoweHasloUzytkownika';

Dla użytkownika sieciowego (jeśli istnieje):

ALTER USER 'nazwa_uzytkownika'@'%' IDENTIFIED BY 'NoweHasloUzytkownika';

Następnie:

FLUSH PRIVILEGES;

Zastąp nazwa_uzytkownika rzeczywistą nazwą użytkownika i NoweHasloUzytkownika nowym, pożądanym hasłem.

Wyjdź z MariaDB, używając polecenia exit lub naciskając „Ctrl + D”.

W razie potrzeby możesz wyświetlić listę wszystkich użytkowników za pomocą następującego zapytania:

SELECT User, Host FROM mysql.user;

Jak połączyć się z MariaDB lokalnie bez wprowadzania hasła

Aby uniknąć ręcznego wprowadzania hasła przy każdym połączeniu z MariaDB z linii poleceń na serwerze, możesz zapisać je w pliku /root/.my.cnf. Otwórz plik w edytorze tekstu:

nano /root/.my.cnf

Dodaj następujące wiersze:

[client]

user = root
password = TwojeHasloRoot

Zastąp TwojeHasloRoot swoim rzeczywistym hasłem root.

Zapisz plik, naciskając Ctrl + O, a następnie zamknij edytor tekstu za pomocą Ctrl + X

Ze względów bezpieczeństwa ustaw bardziej restrykcyjne uprawnienia dla pliku .my.cnf:

chmod 600 /root/.my.cnf

Po tym możesz połączyć się, po prostu uruchamiając polecenie:

mysql -u root