Ситуация когда вы забыли пароль от root-пользователя MySQL сервера одна из неприятных, и хорошо если бы такое не случалось, но если вы утеряли пароль то есть способ попробовать восстановить его. Как вы уже поняли из названия, мы попробуем восстановить учетную запись root-пользователя на сервере MySQL. Первым делом убедитесь, что у вас есть доступ к серверу, и вы можете выполнять с ним манипуляции. В моем примере будет использовать сервер MySQL установленный на операционную систему CentOS Linux. В целом, от версии операционной системы Linux глобально для этой процедуры ничего не меняется. Поэтому приступаем к делу.
Первое что следует сделать, это войти в саму систему Linux, далее следует остановить сервер MySQL.
Останавливаем сервер MySQL
# service mysqld restart
После этого, следует запустить сервер MySQL в безопасном режиме, с опцией –skip-grant-tables.
# mysqld_safe --skip-grant-tables &
Это опция позволит подключиться к серверу MySQL минуя проверку прав пользователя root. Иными словами, мы подключаемся к серверу без пароля.
Подключаемся к серверу MySQL:
# mysql –u root
Теперь мы авторизовались под root-ом, далее нам необходимо сменить пароль root-а.
mysql> use mysql; mysql> update user set password=PASSWORD('root_password') where user='root' and host='localhost'; mysql> flush privileges; mysql> quit
При обновлении пароля, вместо root_password вам следует указать свой пароль. Теперь можно остановить сервер MySQL, и запустить в обычном режиме.
Останавливаем сервер, запущенный в безопасном режиме
killall mysqld_safe
Далее можно запустить сервер, и попробовать авторизоваться в стандартном режиме.
# service mysqld start # mysql -u root -p
UPD: В MySQL версии 5.7 пароль меняется немного иначе, но принцип остается прежним.
Останавливаем сервер MySQL
# service mysqld restart
Наверное должно быть что то вроде:
systemctl stop mysql