Как сменить root пароль для MySQL

После того, как пароль root пользователя[1] MySQL установлен, его можно изменить. Наиболее простой способ следующий:

mysql –u root –p
  • Затем нажать Enter, указать пароль и снова нажать Enter;
  • Выполнить следующие команды:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
quit

После этого пароль будет изменён на newpass.

Данный способ также подходит и для изменений паролей других MySQL пользователей. Для этого в вышеуказанной команде необходимо указать пользователя, для которого меняется пароль (например, вместо root@localhost - dovecot@localhost) и новый пароль.

Сброс root-пароля в случае его утери

Если mysql root-пароль был утерян, его можно сбросить следующим образом:

  • Подключаемся к VPS с правами root.
  • Останавливаем mysql-сервер.

На Debian/Ubuntu для остановки mysql-сервера используется команда

/etc/init.d/mysql stop

или

service mysql stop

На CentOS/Fedora

/etc/init.d/mysqld stop

или

service mysqld stop
  • Далее выполняем команду:
mysqld_safe --skip-grant-tables &
  • Результат выполнения команды будет примерно следующим:
[1] 5988
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[6025]: started
  • Подключаемся к mysql с правами root. Поскольку mysql запушен в безопасном режиме, пароль для входа не требуется:
mysql -u root
  • Выбираем базу данных mysql:
use mysql;
  • Устанавливаем новый mysql root-пароль командой:
update user set password=PASSWORD("новый_root_пароль") where User='root';
  • Перезагружаем привилегии:
flush privileges;
  • Отключаемся от mysql:
quit;
  • Останавливаем и затем вновь запускаем сервер MySQL командами:

Debian/Ubuntu:

/etc/init.d/mysql stop
/etc/init.d/mysql start

CentOS/Fedora

/etc/init.d/mysqld stop
/etc/init.d/mysqld start
  • Пробуем подключиться к mysql с новым установленным паролем:
mysql -u root –p

На этом процесс восстановления пароля завершен.



Примечания

  1. Пароль root пользователя сервера и MySQL могут отличаться друг от друга