Ostatnio (nie wiem kiedy to pisze, jest to ten sam dzień – ale kiedy nacisnę przycisk „Opublikuj” dla tego wpisu to już nie wiem… ;-)) pisałem o odzyskiwaniu hasła do konta administratora (root).

Dziś kontynuacja wątku – ale będziemy odzyskiwać dostęp do konta root dla serwera baz danych (MySQL).

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 :-)

(!) Zgłoś błąd na stronie
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.

Patryk

CEO WebInsider.pl, a do tego CTO, CIO, CFO, CMO, CSO, COO i CRO ;-)
Pasjonat nowych technologii - od sprzętu po oprogramowanie, od serwerów po smartfony i rozwiązania IoT. Potencjalnie kiepski bloger, bo nie robi zdjęć "talerza" zanim zacznie jeść.

Dumny przyjaciel swoich psów :-)
Napisz komentarz
wipl_napisz-komentarz_01
Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które – w miarę możliwości – spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. „linki partnerskie”, co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte… :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.