Na początek sprawdzamy jaką werjsę MySQL posiadamy:
1 |
mysql --version |
Nasz poradnik dotyczy wersji (i prawdopodobnie starszych):
1 |
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:
1 |
'/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:
1 |
sudo service mysql start |
Przejdź pod tą lokalizację:
1 |
cd /var/run |
Zrób kopię bezpieczeństwa:
1 |
sudo cp -rp ./mysqld ./mysqld.bak |
Zatrzymaj serwer MySQL:
1 |
sudo service mysql stop |
Przywróć plik:
1 |
sudo mv ./mysqld.bak ./mysqld |
Uruchamiamy serwer w trybie safe:
1 |
sudo mysqld_safe --skip-grant-tables --skip-networking & |
Logujemy się do MySQL:
1 |
mysql -u root |
Tutaj przy standardowym zmienianiu hasła się to nie udało, pojawiały się m.in. takie problemy jak:
Dla komendy:
1 |
SET PASSWORD FOR root@'localhost' = PASSWORD('Haslo'); |
błąd:
1 |
Plugin 'auth_socket' is not loaded |
Dla komendy:
1 |
update user set password=PASSWORD("Haslo") where User='root'; |
bład:
1 |
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:
1 |
use mysql; |
Ustaw żądane hasło
1 2 |
update user set authentication_string=PASSWORD("Haslo") where User='root'; update user set plugin="mysql_native_password" where User='root'; |
Wyczyść uprawnienia i wyloguj:
1 2 |
flush privileges; quit; |
Następnie możesz sprawdzić czy już nowe hasło działa:
1 |
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