Сброс пароля root в MariaDB

Способ сброса пароля зависит от версии MariaDB. Проверяем сначала версию.

mysql --version

вывод будет приблизительно таким

Запомните или запишите название и версию СУБД. Эти данные пригодятся в дальнейшем.

Отключим сервер баз данных

sudo systemctl stop mariadb

Запустим MariaDB без загрузки информации о пользовательских привилегиях:

sudo mysqld_safe --skip-grant-tables --skip-networking &

Амперсанд (&) в конце команды переведёт её в фоновый режим и можно продолжить работу с терминалом.


Подключаемся к MariaDB как root. Пароль не будет запрошен.

mysql -u root

Мы попадаем сразу в командную оболочку базы данных и выглядит это приблизительно так:

В современных версиях MySQL изменить пароль пользователя root можно с помощью команды ALTER USER. Однако данная команда не сработает без таблиц привилегий, которые пока отключены.
Перезапускаем таблицы привилегий с помощью команды:

FLUSH PRIVILEGES;

Теперь можно изменить пароль root.

В MariaDB 10.1.20+ можно использовать команду:

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

В MariaDB 10.1.20 и более ранних версиях СУБД введите:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

После этого нужно снова перезапустить таблицу привилегий

FLUSH PRIVILEGES;

Теперь можно выйти из командной облочки СУБД:

exit

Появляется «Bye», что означает выход из оболочки базы данных

Для остановки фонового процесса MariaDB вводим:

sudo kill `cat /var/run/mysqld/mysqld.pid`

Теперь можно запустить сервис MariaDB в обычном режиме:

sudo systemctl start mariadb

Для проверки зайдем под root с новым паролем:

mysql -u root -p

Если вход был успешно выполнен, то задача по сбросу пароля root была успешно выполнена