Какую версию MySQL вы используете? Ранее на нашем сайте уже был подобный пост про восстановление пароля root, однако спустя некоторое время с приходом CentOS 7 версии, после установки MySQL из встроенного репозитория, восстановить пароль по примеру, опубликованному ранее уже не удается. Указанный пример актуален для MySQL версии 5.7. В действительности, оказалось, что здесь необходимо проделать примерно то же самое, лишь только немного другим образом. Итак, чтобы восстановить пароль от пользователя root нам необходимо запустить сервер MySQL с опцией skip-grant-tables, это позволит внести поправки в таблице user без авторизации, давайте приступим.
1. Останавливаем сервер MySQL
# systemctl stop mysqld
2. Выставляем параметр для среды MySQL
# systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
3. Запуск MySQL с установленными параметрами
# systemctl start mysqld
4. Авторизуемся под пользователем root
# mysql -u root
После выполнения команды должна открыться консоль MySQL.
5. Обновляем пароль пользователя в консоли MySQL
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPassword') WHERE User = 'root' AND Host = 'localhost'; mysql> FLUSH PRIVILEGES; mysql> quit
6. Останавливаем MySQL
# systemctl stop mysqld
7. Отключаем опцию окружения MySQL выставленную ранее
# systemctl unset-environment MYSQLD_OPTS
8. Запускаем MySQL в нормальном режиме
# systemctl start mysqld
9. Пробуем авторизоваться под root-ом используя новый пароль
# mysql -u root -p
Данный метод может помочь вам восстановить либо изначально задать пароль для пользователя root на вашем сервере MySQL. Таким же образом можно сменить пароль для любого другого пользователя, т.к. при запуске MySQL в режиме skip-grant-tables вы можете свободно вносить изменения в таблице user. На этом всё, всем удачи! Не забываем делать репост в соц. сетях!