hasło do konta root w mysql w XAMPP - co zrobić jeśli go zapomnimy

Podczas zabaw z mysql można przez przypadek utracić dostęp do konta root. Jeśli mamy zwykły serwer mysql możemy wykorzystać kilka sposobów opisanych choćby na oficjanej dokumentacji mysql. Jednak z pakietem XAMPP ten sposób nie działa.

Komunikat błędu: 
odmowa dostępu
Możliwe przyczyny: 

konto root z nieznanym hasłem

Rozwiązanie: 
  1. Zatrzymujemy serwer mySQL,
  2. Znajdujemy na dysku miejsce z plikami obecnej (uszkodzonej) instalacji mysql - np. w c:xampplitemysqldatamysql
  3. Wykonujemy kopię plików user.frm, user.MYI, user.MYD,
  4. Instalujemy gdzieś obok (np. w c:xampp2) xampp lite w tej samej wersji (wazne aby wersja mysql się zgadzała)
  5. Odszukujemy pliki user.frm, user.MYI, user.MYD w c:xampp2mysqldatamysql i kopiujemy do c:xampplitemysqldatamysql
  6. Odpalamy mySQL
  7. Cieszymy się pustym hasłem root

Rozwiązanie alternatywne

(z bloga http://www.trajewski.net/?p=57)

1) w konsoli ssh zatrzymujemy usługę serwera baz danych

/etc/init.d/mysql stop

2)uruchamiamy ją na nowo w trybie safe mode

mysqld_safe --skip-grant-tables &

3) po wykonaniu powyższych czynności, z konsoli logujemy się do serwera baz danych jako root

mysql -u root

4) w konsoli mysql’a ustawiamy nowe hasło dla roota i przeładowujemy dla niego uprawnienia

mysql> use mysql;
mysql> update user set password=PASSWORD("new-password") where user='root';
mysql> flush privileges;
mysql> quit;

5) na koniec – restart usługi serwera baz danych MySQL

/etc/init.d/mysql restart

5
Twoja ocena: None Średnia: 5 (1 vote)

Odpowiedzi

Lew

Lew

Jeśli masz dostęp do serwera

Jeśli masz dostęp do serwera MySQL z konsoli to wpisz:

#mysqld_safe --skip-grant-tables mysqladmin -u root flushprivileges password "nowe_haslo"

Po tej operacji możemy zalogować się do bazy mysql jako użytkownik root z nowym hasłem.

Pzdr.

super, cenna wzskazówka!

super, cenna wzskazówka!

chociaż mi nie pomogła,

chociaż mi nie pomogła, dopiero rozwiązanie znalezione na http://www.trajewski.net/?p=57 było skuteczne

To

To proste

#mysqld_safe

odpalamy przy wyłączonym serwerze MySQL :)

EDIT:
Na tej stronie jest to ten sam sposób. Jest to rozbite na więcej poleceń.

drobny ale jakże istotny

drobny ale jakże istotny szczególik, dzięki za naświetlenie sprawy :D

Sposób wyświetlania odpowiedzi

Wybierz preferowany sposób wyświetlania odpowiedzi i kliknij "Zachowaj ustawienia", by wprowadzić zmiany.