Для получения доступа к MySQL или другие популярные системы управления базами данных, пользователю необходимо ввести данные аутентификации, так называемые логин и пароль к базе. Это стандартный процесс авторизации.
Учетная запись root создается автоматически во время установки. По своей задумке она напоминает привилегированную учетную запись суперпользователя в системе Линукс.
Обычно пароль вводится пользователем вручную, по окончанию процесса установки. Если юзер системы сохраняет личную информацию, у него не должно возникнуть трудностей с авторизацией в дальнейшем, однако на практике пароль забывается или не записывается, получается, что ценная информация утеряна.
Не торопитесь расстраиваться, поскольку подобные проблемы решаются легко и быстро, для этого необходимо выполнить обычный сброс пароля.
Содержание
Сбрасываем при помощи init файла
Алгоритм действий простой:
- создаем файл;
- затем записываем sql запрос в файл;
- останавливаем сервис mysql;
- запускаем сервис mysql с указанием init файла.
С помощью редактора nano создадим файл init-sql, при этом он должен быть доступен для чтения.
# nano /home/ya/init-sql
Здесь:
- nano - название консольного редактора;
- ya - домашний каталог пользователя ya;
- init-sql - название нового файла.
Далее копируем строчку ниже в буфер обмена и вставляем в init-sql (горячие клавиши для вставки текста из буфера CTRL + U)
UPDATE mysql.user SET password=password('new-parol') WHERE user='root';
где "new-parol" - это новый пароль юзера root.
Останавливаем сервис mysql.
# systemctl stop mysql
Далее нужно выполнить файл:
# mysqld --user=musql --init-file=/home/ya/init-sql --console
Чтобы всё сработало, как положено, ждем несколько минут.
Если процесс завис - останавливаем его.
Теперь запустим mysql традиционным способом. При авторизации в системе вводим новый пароль, в моем случае это "new-parol":
mysql -u root -p
Смотрим видео аналогичный пример с init файлов только уже в windows.
Как сбросить пароль при помощи SKIP-GRANT-TABLES
Рассмотрим альтернативный и более безопасный вариант сброса пароля в свободной базе данных. Запустите сервис с данным параметром --skip-grant-tables. Этот режим позволит пользователю авторизоваться в системе без необходимости ввода личных данных (логин и пароль). Останавливаем сервис при помощи:
$ sudo systemctl stop mysql
Команда для запуска системы в ручном режиме:
$ sudo mysqld --user=mysql --skip-grant-tables
Далее вам понадобится консоль управления системой. Команда для запуска:
$ mysql -u root
Подгрузите таблицы привилегий юзеров:
$ FLUSH PRIVILEGES;
Пришло время сменить пароль, вводим запрос:
$ UPDATE mysql.user SET password=password ('new-parol') WHERE user='root';
Далее выходим:
exit
Пройдите авторизацию от имени суперпользователя:
mysql -u root -p
Заключение
Из этой статьи вы узнали, как произвести сброс password MySQL для восстановления административного доступа к системе. Каждый из представленных выше способов удобен своей простотой и понятностью. Выберите подходящий вариант и приступите от теории к практике!
Важно! Код сервиса часто меняется разработчиками, поэтому некоторые команды могут не сработать. Данная проблема не представляет особой сложности – она решается быстро, если знать одну маленькую хитрость. Используйте в этих целях универсальную команду UPDATE.
Рекомендация: позаботьтесь о том, чтобы новый пароль рута был достаточно безопасным. Храните личную информацию в надежном месте.