Поиск

Предлагаемые теги:

Сброс пароля пользователя root в MySQL и MariaDB

Сброс пароля пользователя root в MySQL и MariaDB

В данной статье мы рассмотрим, как сбросить пароль root от MySQL или MariaDB при его утере или забытости. Не паникуйте, у нас есть решение. Для этого потребуется доступ к серверу и учетная запись с правами root на операционной системе. Это руководство проверено на операционной системе Ubuntu 20.04 для обеих популярных СУБД – MySQL и MariaDB.

Проверка конфигурации Ubuntu 20.04

Перед началом убедитесь, что конфигурация аутентификации по умолчанию не была изменена. Запустите команду sudo mysql и, если возникает ошибка "access denied", следуйте инструкциям в этой статье.

Шаг 1 – Определение версии и остановка сервера базы данных

1.1. Определите версию СУБД:

mysql --version

1.2. Остановите сервер базы данных в зависимости от используемой СУБД:

Для MariaDB:

sudo systemctl stop mariadb

Для MySQL:

sudo systemctl stop mysql

Шаг 2 – Перезапуск сервера в режиме –skip-grant-tables

2.1. Настройка для MariaDB:

sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking"
sudo systemctl start mariadb
sudo systemctl status mariadb
sudo mysql -u root

2.2. Настройка для MySQL:

sudo systemctl edit mysql

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

[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking

Сохраните изменения нажав CTRL + X, перезагрузите systemd и запустите MySQL:

sudo systemctl daemon-reload
sudo systemctl start mysql
sudo mysql -u root

Шаг 3 – Изменение пароля root

Находясь в режиме –skip-grant-tables, выполните следующие шаги:

Для MariaDB:

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'новый_пароль';
UPDATE mysql.user SET authentication_string = '' WHERE user = 'root';
UPDATE mysql.user SET plugin = '' WHERE user = 'root';

Для MySQL:

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'новый_пароль';

Шаг 4 – Запуск сервера в штатном режиме

4.1. Для MariaDB:

sudo systemctl unset-environment MYSQLD_OPTS
sudo systemctl restart mariadb

4.2. Для MySQL:

sudo systemctl revert mysql
sudo systemctl daemon-reload
sudo systemctl restart mysql

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

mysql -u root -p

Успешного восстановления! Не забывайте свои пароли=)

Иван Третьяков
Автор

Иван Третьяков