img

Как сбросить root пароль на MySQL?

Может так случиться, что вы забудете или потеряете свой root пароль MySQL, но не стоит отчаиваться – его можно сбросить и восстановить доступ. Что нам нужно знать так это то, что пароль хранится в таблице пользователей. Это означает, что нам нужно найти способ обойти аутентификацию MySQL, чтобы мы могли обновить запись пароля.

icon strelka icons icons

узнай больше на курсе

Онлайн-курс по Linux
Курс по Linux от Мерион Нетворкс - стань Linux администратором, прокачай свой скиллсет умением работать с операционными системами линукс и сделай большой шаг к DevOps
Подробнее о курсе
Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Подробнее о курсе
DevOps-инженер с нуля
Стань DevOps-инженером с нуля и научись использовать инструменты и методы DevOps
Подробнее о курсе

К счастью, это легко сделать, и это руководство проведет вас через процесс восстановления или сброса пароля root в версии MySQL 8.0.

Согласно документации по MySQL, существует два способа сброса корневого пароля MySQL и в этой статье мы рассмотрим оба.

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

Сброс MySQL root пароля с использованием –init-file

Один из способов сброса пароля root - создать локальный файл, а затем запустить службу MySQL, используя параметр --init-file, как показано ниже:

# vim /home/user/init-file.txt

Важно убедиться, что файл доступен для чтения пользователю mysql. В этот файл вставьте следующее и измените «new_password» на пароль, который вы хотите использовать:

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

Теперь убедитесь, что служба MySQL остановлена. Вы можете сделать следующее:

# systemctl stop mysqld.service     # для дистрибутивов использующих systemd 
# /etc/init.d/mysqld stop           # для дистрибутивов использующих init

Далее запустите следующее:

# mysqld --user=mysql --init-file=/home/user/init-file.txt --console

Это запустит службу MySQL и во время процесса выполнит созданный вами файл инициализации, и, следовательно, пароль для пользователя root будет обновлен. Обязательно удалите файл после сброса пароля.

После этого обязательно остановите сервер и запустите его как обычно.

# systemctl stop mysqld.service        # для дистрибутивов использующих system
# systemctl restart mysqld.service     # для дистрибутивов использующих systemd
# /etc/init.d/mysqld stop              # для дистрибутивов использующих init 
# /etc/init.d/mysqld restart          # для дистрибутивов использующих init

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

# mysql -u root -p

Сброс MySQL root пароля с использованием –skip-grant-tables

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

Если сервер запущен --skip-grant-tables, опция для --skip-network активируется автоматически, поэтому удаленные подключения не будут доступны.

Сначала убедитесь, что служба MySQL остановлена.

# systemctl stop mysqld.service     # для дистрибутивов использующих systemd 
# /etc/init.d/mysqld stop           # для дистрибутивов использующих init

Затем запустите службу с помощью следующей опции.

# mysqld --skip-grant-tables --user=mysql &

Теперь вы можете подключиться к серверу MySQL, просто используя:

# mysql

Поскольку управление учетными записями отключается при запуске службы с параметром --skip-grant-tables, нам придется перезагрузить гранты. Таким образом, мы сможем изменить пароль позже:

# FLUSH PRIVILEGES;

Теперь вы можете выполнить следующий запрос, чтобы обновить пароль. Обязательно замените «new_password» реальным паролем, который вы хотите использовать.

# ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';

Теперь остановите сервер MySQL и запустите его как обычно.

# systemctl stop mysqld.service        # для дистрибутивов использующих system
# systemctl restart mysqld.service     # для дистрибутивов использующих systemd
# /etc/init.d/mysqld stop              # для дистрибутивов использующих init 
# /etc/init.d/mysqld restart          # для дистрибутивов использующих init

Теперь вы сможете подключиться с новым паролем:

# mysql -u root –p
Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
icon strelka icons icons

узнай больше на курсе

Онлайн-курс по Linux
Курс по Linux от Мерион Нетворкс - стань Linux администратором, прокачай свой скиллсет умением работать с операционными системами линукс и сделай большой шаг к DevOps
Подробнее о курсе
Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Подробнее о курсе
DevOps-инженер с нуля
Стань DevOps-инженером с нуля и научись использовать инструменты и методы DevOps
Подробнее о курсе
Python программист с нуля
Стань разработчиком на одном из самых популярных языков программирования - Python
Подробнее о курсе
Онлайн-курс по кибербезопасности
Полный курс по кибербезопасности от Мерион Нетворкс - учим с нуля специалистов по информационной безопасности. Пора стать безопасником!
Подробнее о курсе
Онлайн-курс по сетевой безопасности
Изучи основы сетевой безопасности и прокачай скилл системного администратора и сетевого инженера
Подробнее о курсе
Еще по теме:
img
Что позволяет называть один API как REST API, а другой нет? Сейчас попробуем разложить все по полочкам, чтобы ты на собесе жидко не споткнулся о такую, казалось бы, простую тему.
img
Узнайте, как работают сетевые порты в Linux, какие бывают типы портов, и как управлять ими с помощью команд netstat, ss, ufw и iptables
img
Рассказываем, как появился nginx, его отличия от apache, для чего нужен nginx и какие у него преимущества
img
В этом руководстве вы узнаете, как установить и настроить Fail2ban на своем сервере.
img
В этой статье обсудим гипервизоры — важные компоненты процесса виртуализации серверов, как они работают и какие бывают типы.
ЛЕТНИЕ СКИДКИ
30%
40%
50%
До конца акции: 30 дней 24 : 59 : 59