Как сбросить пароль root для MySQL в среде Linux

14 ноябрь 2017, Вторник
3 042
0
0 0
Если пароль от сервера БД MySQL утерян/забыт/не передан предыдущим администратором, то есть штатная процедура сброса пароля root. Это в обязательном порядке потребует остановки сервера СУБД.

Итак, чтобы сбросить пароль в среде Linux потребуется следующий порядок действий:
1. Выполнить вход на сервер, где запущен сервер MySQL/MariaDB
2. Остановить процесс mysql
Для остановки процесса, в зависимости от дистрибутива потребуется узнать pid родительского процесса. Его можно узнать при помощи команды: ps aux | grep MySQL или найти файл ".pid" (обычно mysql.pid или mariadb.pid) в одном из наиболее часто используемых каталогов, в зависимости от типа linux дистрибутива:
/var/lib/mysql/
/var/run/mysqld/
/usr/local/mysql/data/
и далее выполнить команду:
kill <pid>
где <pid> - это номер процесса, который записан в .pid файле

В современных дистрибутивах, например, в CentOS 7, остановить MySQL без выснения PID процесса, воспользовавшись командой:
systemctl stop mysqld
Либо
service mysql stop
3. Запустить сервер MySQL с параметром --skip-grant-tables, командой:
mysqld_safe --skip-grant-tables
4. подключиться к локальному серверу MySQL командой:
mysql -u root
5. Последовательно выполняем команды:
  •     Явно указать БД с которой работаем,
  •     Установить новый пароль для сервера MySql
  •     Указать серверу заново выполнить загрузку таблицы привилегий
  •     Отключиться от сервера
use mysql;
UPDATE user set password=PASSWORD("MyNewPassword") WHERE User='root';
FLUSH PRIVILEGES;
quit
Где, MyNewPassword - новый пароль для учетной записи root
6. Останавливаем службу MySQL одним из способов, предложенных в пункте 2
7. Выполняем обычный запуск службы MySQL, например, так
service mysql start
или так
systemctl start mysqld
8. Если ошибок не возникло, штатное подключение к серверу с паролем от пользователя root будет успешным.
mysql -u root -p

Описанная выше процедура одинаково подходит как для сервера MySql, так и для сервера MariaDB, с тем лишь исключением, что название сервисов может быть не mysql (mysqld), а mariadb.
Комментарии:
Прокомментировать
При использовании материалов ссылка на сайт UserMan.ru обязательна.
Политика конфиденциальности
Пользовательское соглашение
UserMan.ru © 2017-2024
Соцсети: VK