MySQL 8 (Reset Root Password)

Теги

Вы забыли пароль root (Password) пользователя базы данных MySQL? Это пошаговое руководство объясняет, как сбросить пароль root в MySQL 8 на операционной системе Ubuntu 20.04.

Примечание: Как вы, возможно, уже знаете, root пользователь MySQL использует плагин auth_socket для аутентификации на сервере MySQL в системах Ubuntu, работающих с MySQL 5.7 и более поздними версиями. Поэтому вы можете войти на сервер MySQL как пользователь root с помощью команды sudo mysql при условии, что вы знаете пароль sudo вашего системного пользователя (Password).

В этом случае нет необходимости менять пароль MySQL root. Если вы уже изменили метод аутентификации для корневого пользователя MySQL на caching_sha2_password или mysql_native_password, выполните следующие шаги, чтобы сбросить пароль корня базы данных MySQL.

Сначала остановите службу MySQL с помощью команды:

$ sudo systemctl stop mysql

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

$ sudo systemctl status mysql

Далее запустите сервер MySQL без проверки прав доступа. Для этого выполните:

$ sudo systemctl edit mysql

Это откроет файл конфигурации mysql systemd в вашем текстовом редакторе по умолчанию. В моем случае это редактор nano.

Добавьте в него следующие строки:

[Service]

ExecStart=

ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking

После добавления указанных строк нажмите CTRL+O и ENTER, чтобы сохранить файл, а затем нажмите CTRL+X, чтобы закрыть его.

Здесь опция --skip-grant-tables позволяет вам подключиться к серверу баз данных MySQL без пароля и со всеми привилегиями. Она также отключает операторы управления учетными записями, такие как ALTER USER и SET PASSWORD. А опция --skip-networking используется для предотвращения подключения других клиентов к серверу баз данных. Поскольку она отключает все удаленные соединения, ни один из удаленных клиентов не сможет получить доступ к серверу баз данных, пока вы не перезапустите сервер баз данных в нормальном режиме.

Перезагрузите конфигурацию systemd с помощью команды:

$ sudo systemctl daemon-reload

Запустите службу MySQL:

$ sudo systemctl start mysql

Это запустит сервер MySQL с опциями --skip-grant-tables и --skip-networking. Вы можете убедиться в этом, проверив статус службы MySQL.

Теперь подключитесь к серверу MySQL как пользователь root без пароля:

$ sudo mysql -u root

Вы сразу же попадете в интерпретатор MySQL.

Мы вошли на сервер базы данных без загрузки таблиц грантов (потому что мы использовали опцию --skip-grant-tables). Поэтому мы не можем использовать команду ALTER USER, которая нужна для сброса пароля. Чтобы загрузить таблицы грантов, выполните следующую команду из интерпретатора MySQL shell:

mysql> FLUSH PRIVILEGES;

Затем выполните любую из следующих команд для сброса пароля MySQL root. Если вы используете плагин caching_sha2_password, выполните:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '123Password123';

Если вы используете плагин mysql_native_password, выполните:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123Password123';

Замените пароль 123Password123 на свой собственный.

После изменения пароля корня MySQL выйдите из интерпретатора MySQL:

mysql> exit

Верните измененную конфигурацию systemd к нормальным настройкам с помощью команды:

$ sudo systemctl revert mysql

Это приведет к удалению всех измененных файлов.

Removed /etc/systemd/system/mysql.service.d/override.conf.

Removed /etc/systemd/system/mysql.service.d.

Перезагрузите конфигурацию systemd, чтобы изменения вступили в силу:

$ sudo systemctl daemon-reload

Наконец, перезапустите сервер MySQL в нормальном режиме:

$ sudo systemctl restart mysql

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

$ mysql -u root -p

Введите пароль root для доступа к интерпретатору MySQL:

mysql>

Существует также другой способ изменить пароль MySQL root в Linux.

Как видите, восстановить root пароль MySQL очень просто. Если вы внимательно выполнили все описанные выше шаги, то сможете восстановить root пароль базы данных MySQL за пару минут.


Root  — это специальный аккаунт и группа пользователей в UNIX-подобных системах.

 

Последние материалы