Cбрасываем пароль администратора MySQL 8

На днях апргрейднув MySQL c 5.5 до 8.0, о чем в последствии пожалел, я столкнулся с целой горой проблем. Одной из них стала ошибка авторизации пользователя root.

Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such fileor directory

В блогах разработчиков MySQL 8 нашел информацию, что данная библиотека встроена в сам исходник MySQL, поэтому проблема решается изменением способа идентификации пользователя. Для этого необходимо:

Остановить MySQL сервер:

serice mysqld stop

Запустить сервер без таблиц с доступами:

mysqld --skip-grant-tables --user=mysql &

Обратите внимание: амперсанд (&) обязателен в конце команды. Он позволяет запустить инстанс MySQL в фоновом режиме, и показывает PID запущенного процесса, по которому мы потом сможем его закрыть.

Заходим в консоль MySQL:

mysql

И вводим команды:

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newPassword';

Выходим:

quit

И закрываем созданный инстанс по PID:

kill <PID>

Запускаем сервис MySQL и проверяем соединение:

service mysqld start
mysql -uroot -p