Работаем в терминале: сброс пароля пользователя root в MySQL

Все мы не без греха и иногда не соблюдение элементарных правил приводит к тому, что мы мучительно "ломаем" голову в попытке вспомнить пароль. Да, мы все прекрасно знаем, что логин и пароль от сервиса, необходимо где-либо записать, чтобы потом успешно им воспользоваться, ведь не даром есть пословица: "Подальше положишь - поближе возьмешь". Но существует - это пресловутое "но".... и наше извечное "авось" и "небось": небось - не забуду, авось - вспомню. Мы благополучно игнорируем это правило, не всегда конечно, но именно тот пароль, который мы решили записать потом, потому что сейчас надо быстро доделать, лень искать ручку и блокнот, кто-то нас отвлёк и т.д., мы начинаем вспоминать, причем, времени ещё меньше, чем было тогда, когда мы его не записали. Так произошло и со мной - я забыл пароль пользователя root от сервера MySQL. Сегодня мы рассмотрим способ сброса пароля пользователя root от сервера MySQL. Данная инструкция работает на OS Linux Ubuntu 18.04-20.04 и версии MySQL - 14.14 Distrib 5.7.29.
И так, приступим.

1. Открываем терминал и останавливаем текущую службу MySQL:

sudo systemctl stop mysql

2. Создаем каталог /var/run/mysqld который будет использоваться процессом MySQL для хранения и доступа к файлу сокета, а также назначаем каталогу необходимые права доступа:

sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld

3. Запускаем сервер MySQL со следующими параметрами, не забываем знак амперсанд (&) в конце строки, для работы сервиса в фоне:

sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &

4. Убеждаемся, что сервис запущен и работает:

jobs
[1]+ Запущен sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &

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

mysql -u root

6. Теперь, когда мы попали в консоль сервера MySQL мы можем сбросить установленный ранее пароль пользователя root следующей последовательностью запросов:

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> USE mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed

mysql> UPDATE user SET authentication_string=PASSWORD("ROOT-PASSWORD") WHERE User='root';
Query OK, 1 row affected, 1 warning (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 1

mysql> UPDATE user SET plugin="mysql_native_password" WHERE User='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0

mysql> quit
Bye

Обратите внимание на (;) в конце каждого запроса, не забывайте про них. С помощью этих запросов, мы установили пароль "ROOT-PASSWORD" для пользователя "root".

7. Завершаем запущенный нами процесс mysqld:

sudo pkill mysqld

8. Проверяем выполнение предыдущей команды:

jobs
[1]+ Завершён sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking

9. Запускаем сервис MySQL в штатном режиме:

sudo systemctl start mysql

10. После того, как мы изменили пароль пользователя root, мы можем войти в сервис используя только что установленный пароль:

mysql -u root --password=ROOT-PASSWORD

На этом, миссия по восстановлению доступа к базе данных успешно завершена и контроль над сервисом восстановлен. ))

Надеюсь из этой статьи Вы извлечёте полезный урок - записывать важные пароли в специальный блокнотик и неважно какой он: бумажный или электронный. Ну, а если нет, то инструкция, вам во всяком случае, поможет Вам сбросить забытый пароль.

До скорых встреч!

Похожие записи

Добавить комментарий