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.
Możliwe przyczyny:
konto root z nieznanym hasłem
Rozwiązanie:
- Zatrzymujemy serwer mySQL,
- Znajdujemy na dysku miejsce z plikami obecnej (uszkodzonej) instalacji mysql - np. w c:xampplitemysqldatamysql
- Wykonujemy kopię plików user.frm, user.MYI, user.MYD,
- Instalujemy gdzieś obok (np. w c:xampp2) xampp lite w tej samej wersji (wazne aby wersja mysql się zgadzała)
- Odszukujemy pliki user.frm, user.MYI, user.MYD w c:xampp2mysqldatamysql i kopiujemy do c:xampplitemysqldatamysql
- Odpalamy mySQL
- 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