После того, как пароль root пользователя [1] MySQL установлен, его можно изменить. Наиболее простой способ следующий:
- Подключиться по SSH к виртуальному серверу;
- Подключиться к MySQL как пользователь root при помощи команды:
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
На CentOS 7
systemctl stop mariadb
- Далее выполняем команду:
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
CentOS 7
systemctl stop mariadb systemctl start mariadb
- Пробуем подключиться к mysql с новым установленным паролем:
mysql -u root –p
На этом процесс восстановления пароля завершен.
Примечания
- ↑Пароль root пользователя сервера и MySQL могут отличаться друг от друга