Reset hasła roota w MySQL
Na początek sprawdzamy jaką werjsę MySQL posiadamy:
mysql --version
Nasz poradnik dotyczy wersji (i prawdopodobnie starszych):
mysql Ver 14.14 Distrib 5.7.23, for Linux (x86_64)
Podczas zmieniania hasła normalną drogą (masa poradników w sieci) natrafiliśmy m.in. na takie problemy:
'/var/run/mysqld' for UNIX socket file don't exists
Poniżej tutorial jak to zrobić mimo wystąpienia tych nieprawidłowości.
Uruchamiamy serwer:
sudo service mysql start
Przejdź pod tą lokalizację:
cd /var/run
Zrób kopię bezpieczeństwa:
sudo cp -rp ./mysqld ./mysqld.bak
Zatrzymaj serwer MySQL:
sudo service mysql stop
Przywróć plik:
sudo mv ./mysqld.bak ./mysqld
Uruchamiamy serwer w trybie safe:
sudo mysqld_safe --skip-grant-tables --skip-networking &
Logujemy się do MySQL:
mysql -u root
Tutaj przy standardowym zmienianiu hasła się to nie udało, pojawiały się m.in. takie problemy jak:
Dla komendy:
SET PASSWORD FOR root@'localhost' = PASSWORD('Haslo');
błąd:
Plugin 'auth_socket' is not loaded
Dla komendy:
update user set password=PASSWORD("Haslo") where User='root';
bład:
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
Aby bezproblemowo zmienić hasło wywołaj następujące komendy w konsoli MySQL:
Wybierz bazę mysql:
use mysql;
Ustaw żądane hasło
update user set authentication_string=PASSWORD("Haslo") where User='root';
update user set plugin="mysql_native_password" where User='root';
Wyczyść uprawnienia i wyloguj:
flush privileges; quit;
Następnie możesz sprawdzić czy już nowe hasło działa:
mysql -uroot -pHaslo
Więcej źródeł:
https://stackoverflow.com/questions/41984956/cant-reset-root-password-with-skip-grant-tables-on-ubuntu-16
https://stackoverflow.com/questions/37879448/mysql-fails-on-mysql-error-1524-hy000-plugin-auth-socket-is-not-loaded

