В данной инструкции мы расскажем как сбросить пароль к базе данных 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 напишите ваш новый пароль.
Готово!