Dziś kontynuacja wątku – ale będziemy odzyskiwać dostęp do konta root dla serwera baz danych (MySQL).
Spis treści w artykule
VPS (Ubuntu/Debian) i odzyskiwanie dostępu do konta root dla MySQL
Metod jest kilka, większość jest podobna – różnią się szczegółami… Na tyle istotnymi, że nie zawsze chcą działać prawidłowo… ;-)
Dlatego postaram się opisać krok po kroku moim zdaniem 2 najprostsze, a na pewno takie która jeszcze mnie nie zawiodły.
MYSQL root recorvery z „skip-grant-tables”
Zaczynamy od zalogowania się do serwera (po SSH, bo ew. hasło do konta root do systemu już odzyskaliśmy), i bierzemy się do pracy:
Zatrzymujemy serwer baz danych (MySQL):
sudo service mysql stop
Następnie uruchamiamy go w „trybie awaryjnym”:
sudo mysqld_safe --skip-grant-tables &
Po czym logujemy się do MySQL (hasło puste):
mysql -u root
I wykonujemy kolejno polecenia (po każdym [enter]):
use mysql;
update user set password=PASSWORD("nowe_haslo") where User='root';
flush privileges;
quit
Teraz wystarczy tylko zrestartować serwer MySQL:
sudo service mysql stop sudo service mysql start
lub
sudo service mysql restart
I już można zalogować się za pomocą nowego hasła:
mysql -u root -p
Jak widać – metoda prosta i szybka, choć kiedyś z jakichś przyczyn nie chciała zadziałać i wtedy uratowała mi skórę kolejna metoda, którą wtedy zapisałem sobie w pliku „ku pamięci”… Choć przyznam, że dawno nie testowałem – ale mam nadzieję, że nic nie pomylę:
MYSQL root recorvery z „init-file”
Również zaczynamy od zatrzymania serwera MySQL:
sudo service mysql stop
Następnie tworzymy „plik pomocniczy” z odpowiednimi parametrami logowania:
echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'haslo' WITH GRANT OPTION;"> /root/mysql-temp
Uruchamiamy ponownie serwer MySQL, ale w trybie „awaryjnym” z naszym plikiem jako parametrem:
sudo mysqld_safe --init-file=/root/mysql-temp &
I logujemy się do MySQL jako root, korzystając ze zdefiniowanych w pliku pomocniczym parametrów (hasło: haslo):
mysql -u root -p
Po czym już w ramach MySQL wykonujemy kilka prostych poleceń – po każdym naciskamy [enter]:
use mysql;
update user set password=PASSWORD("nowe_hasło") where User='root';
flush privileges;
exit
I wyłączamy serwer by uruchomić go już w trybie normalnym, z nowo zdefiniowanym hasłem dla użytkownika root:
sudo service mysql stop
sudo service mysql start
lub
sudo service mysql restart
Dalej pewnie już wiecie co i jak… W innym wypadku – choć nie tylko – polecam phpMyAdmin :-)
- Zero Trust od Cloudflare, czyli prosty i bezpieczny sposób na dostęp do lokalnych zasobów z zewnątrz, bez publicznego adresu IP i otwierania portów na routerze - 1970-01-01
- Home Assistant i integracja z IMGW-PIB, czyli tworzymy automatyzację z powiadomieniami bazując na sensorach zagrożenie i alarm powodziowy - 1970-01-01
- Home Assistant 2024.9 i kolejne przydatne nowości w widoku „sekcje”, dzięki którym jeszcze lepiej można dopasować wygląd - 1970-01-01