Как сбросить root-пароль в MySQL

В данной инструкции мы расскажем как сбросить пароль к  базе данных MySQL. Для этого вам потребуется root-доступ к серверу по SSH.

В некоторых дистрибутивах к MySQL можно подключиться без ввода пароля с помощью плагин auth_socket. По умолчанию  доступ имеет только root-пользователь ОС.

Чтобы проверить, какой у вас доступ, подключитесь к серверу и выполните следующую команду:

mysql

Если настроен доступ без пароля, на экране вы увидите примерно следующее:

Если на MySQL настроен доступ по паролю, вы увидите ошибку:

 

Предлагаем воспользоваться инструкцией по восстановлению root - пароля MySQL:

Подключитесь по SSH к вашему серверу;

1. Откройте файл параметров MySQL командой:

nano /etc/mysql/my.cnf

2. Добавьте в конец файла три параметра:

[mysqld]

skip-grant-tables

skip-networking

Если же директива [mysqld] уже прописана в файле, достаточно добавить только skip-grant-tables и skip-networking:

  • skip-grant-tables — параметр, который пропускает проверку прав. Это позволит подключиться к MySQL без пароля любому пользователю.
  • skip-networking — параметр, который запретит удалённые подключения к серверу БД на время сброса пароля.

 

3. Для сохранения изменений, нажмите CTRL+S. Далее закройте редактор сочетанием клавиш CTRL+X.

4. Перезапустите сервер БД следующей командой чтобы запустить MySQL с нужными параметрами:

systemctl restart mysql.service

5. Подключитесь к серверу баз данных командой:

mysql

6. Перезагрузите привилегии:

FLUSH PRIVILEGES;

7. Поменять пароль необходимо при помощи команды:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';

Вместо password введите свой новый пароль.

При выполнении команды может возникнуть ошибка неправильного синтаксиса, в этом случае попробуйте команду:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password');

При  возникновении ошибки «ERROR 1290 (HY000): The MySQL server is running with the —skip-grant-tables option so it cannot execute this statement», выполните команду из 6 шагов.

8. Необходимо открыть конфигурационный файл:

nano /etc/mysql/my.cnf

9. Удалить из файла текст, который добавили на 2-ом шаге:

[mysqld] 

skip-grant-tables

skip-networking

Если на 2-ом шаге вы добавили только параметры skip-grant-tables и skip-networking, удалите только их.

Внимание! Обязательно удалите опцию skip-grant-tables из конфигурационного файла после смены пароля. Если не удалить параметр, после перезапуска сервера баз данных подключаться к MySQL можно будет без пароля от имени любого пользователя.

10. Для сохранения изменений, нажмите CTRL+S. Далее закройте редактор сочетанием клавиш CTRL+X.

11. Подключитесь к серверу баз данных: 

mysql -uroot -p’password’

Вместо password напишите ваш новый пароль.

Готово!

Помог ли вам данный ответ? 149 Пользователи считают это полезным (443 голосов)

Powered by WHMCompleteSolution