Mariadb смена пароля root

Mariadb смена пароля root Техника

Что такое MySQL и MariaDB

MySQL и MariaDB – очень популярные системы управления базами данных, основанных на языке запросов SQL. Сегодня их используют для веб-сайтов, проектов по машинному обучению, в различных средах разработки и так далее.

Если у вас Windows, то смотрите статью «Как сбросить пароль root MySQL или MariaDB в Windows».

Позабыть пароль может каждый. Если вы забыли или потеряли пароль рута для вашей системы управления базы данных MySQL или MariaDB вы всё равно можете получить доступ и сбросить пароль, если у вас есть доступ к серверу и вашему пользователю разрешено выполнять команды с sudo (или просто аккаунт рута).

Эта инструкция охватывает сброс пароля root как для более старых, так и для новых версий MySQL и MariaDB.

If you’re installing MySQL or MariaDB in Linux for the first time, chances are you will be executing mysql_secure_installation script to secure your MySQL installation with basic settings.

Suggested Read: Recover MySQL or MariaDB Root Password in Linux

This article will come in handy. We will explain how to change a root password of MySQL or MariaDB database server in Linux.

Although we will use a MariaDB server in this article, the instructions should work for MySQL as well.

Change MySQL or MariaDB Root Password

You know the root password and want to reset it, in this case, let’s make sure MariaDB is running:

------------- CentOS/RHEL 7 and Fedora 22+ ------------- 
# systemctl is-active mariadb

------------- CentOS/RHEL 6 and Fedora -------------
# /etc/init.d/mysqld status
Check MySQL Status
Check MySQL Status

If the above command does not return the word active as output or its stopped, you will need to start the database service before proceeding:

------------- CentOS/RHEL 7 and Fedora 22+ ------------- 
# systemctl start mariadb

------------- CentOS/RHEL 6 and Fedora -------------
# /etc/init.d/mysqld start

Next, we will login to the database server as root:

# mysql -u root -p
MariaDB [(none)]> USE mysql;
MariaDB [(none)]> UPDATE user SET password=PASSWORD('YourPasswordHere') WHERE User='root' AND Host = 'localhost';

To validate, exit your current MariaDB session by typing.

MariaDB [(none)]> exit;

and then press Enter. You should now be able to connect to the server using the new password.

Change MySQL/MariaDB Root Password
Change MySQL/MariaDB Root Password

In this article we have explained how to change the MariaDB / MySQL root password – whether you know the current one or not.

As always, feel free to drop us a note if you have any questions or feedback using our comment form below. We look forward to hearing from you!

If you are setting up a MySQL or MariaDB database server for the first time, chances are you will be running mysql_secure_installation soon afterwards to implement basic security settings.

Suggested Read: Change MySQL or MariaDB Root Password

This article will come in handy. We will explain how to reset or recover forgottent MySQL or MariaDB root password in Linux.

Although we will use a MariaDB server in this article, the instructions should work for MySQL as well.

Recover MySQL or MariaDB root Password

To begin, stop the database service and check the service status, we should see the environment variable we set previously:

------------- SystemD ------------- 
# systemctl stop mariadb

------------- SysVinit -------------
# /etc/init.d/mysqld stop

Next, start the service with --skip-grant-tables:

------------- SystemD ------------- 
# systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
# systemctl start mariadb
# systemctl status mariadb

------------- SysVinit -------------
# mysqld_safe --skip-grant-tables &
Start MySQL/MariaDB with Skip Tables
Start MySQL/MariaDB with Skip Tables

This will allow you to connect to the database server as root without a password (you may need to switch to a different terminal to do so):

# mysql -u root
MariaDB [(none)]> USE mysql;
MariaDB [(none)]> UPDATE user SET password=PASSWORD('YourNewPasswordHere') WHERE User='root' AND Host = 'localhost';

Finally, stop the service, unset the environment variable and start the service once again:

------------- SystemD ------------- 
# systemctl stop mariadb
# systemctl unset-environment MYSQLD_OPTS
# systemctl start mariadb

------------- SysVinit -------------
# /etc/init.d/mysql stop
# /etc/init.d/mysql start

This will cause the previous changes to take effect, allowing you to connect to the database server using the new password.

Дополнительно:  Can I somehow unlock my phone's bootloader or root it?

In this article we have discussed how to reset the MariaDB / MySQL root password. As always, feel free to use the comment form below to drop us a note if you have any questions or feedback. We look forward to hearing from you!

If you read this far, tweet to the author to show them you care. Tweet a thanks

Photo of author

Root Password reset featured image


  • An Ubuntu 20.04 server properly configured with MySQL or MariaDB. The following guide will demonstrate setting up an Ubuntu server.  Follow this tutorial to install and configure MySQL or this one if you prefer to work with MariaDB.
  • Access to a non-root sudo user. This guide demonstrates how to grant user access to sudo privilege.

It’s recommended to try out the steps beforehand on a test server. CloudSigma offers high-performance computing power at the best price. You can give the CloudSigma platform a try for free from this link.

Database Version

When on Ubuntu, there are two variants of MySQL: MySQL (original) or MariaDB (a MySQL fork). The commands necessary to recover the root password differ depending on whether it’s a MySQL or MariaDB server.

mysql --version

For MariaDB, the output will contain “MariaDB” after the version number. In the case of MySQL, it won’t mention anything after the version number.

Stopping MySQL/MariaDB Server

Next, check the status of the MySQL/MariaDB service:

To stop the service, run the appropriate command:

Tweaking MySQL/MariaDB Startup Behavior

  • Tweaking MariaDB startup

The environment variable is set. Time to start the MySQL/MariaDB server:

There won’t be any output. To confirm that the server started successfully, check the service status:

  • Tweaking MySQL startup

As demonstrated in the previous method, we need to change the value of MYSQLD_OPTS to start MySQL/MariaDB without grant tables and networking. In the case of MySQL, the value of MYSQLD_OPTS will be set using the service startup script. Open the MySQL service startup script:


Note that we’ve declared ExecStart two times. The first instance clears any default value. The second one sets the new startup command with parameters to disable grant tables and networking.

Next, save the file and exit the editor. Reload systemd to apply these changes:

Дополнительно:  Почему ноутбук не подключается к Wi-Fi через роутер, что делать, если ноут с Windows 7 или 10 перестал соединяться с сетью, а у телефона нет проблем с подключением

The MySQL/MariaDB server is ready to be started:

Next, verify the status:

Root Password image 1

Logging in as Root

Root Password image 2


Changing the Password

  • Changing root password on MariaDB

Changing root password on MariaDB

mysql.user plugin

  • Changing root password on MySQL

Reverting Database Changes

The root password is now reset successfully. It’s time to revert back the changes.

  • Reverting MariaDB

To take the changes into effect, restart MariaDB:

  • Reverting MySQL

In the case of MySQL, we had to modify the systemd configuration. One way is to remove the modified systemd configuration:

If the systemd configuration is important, then you have to manually edit and remove the ExecStart entries. Once updated, reload MySQL:

Finally, restart MySQL:

sudo systemctl restart mysqlVerification

mysql -u root

Final Thoughts


Как сбросить пароль root для сервисов MySQL и MariaDB

Чтобы установить новый пароль для пользователя root сервиса управления базами данных (ВНИМАНИЕ – это НЕ системный пользователь root!), выполните следующие действия:

Войдите на свой сервер как привилегированный пользователь;

service mysql stop # для MySQL
service mariadb stop # для MariaDB


Временно разрешите аутентификацию без пароля и запустите службу:


Авторизуйтесь в системе управления базами данных и установите новый root-пароль:


Удалите директиву skip-grant-tables из файла и перезапустите службу:

service mysql stop; sed -i -e '$d' /etc/mysql/my.cnf && sed -i -e '$d' /etc/mysql/my.cnf; service mysql start


Обратите внимание – я не случайно запустил команду sed -i -e ‘$d’ дважды, а потому, что из конфигурационного файла нужно удалить две последние строки.

Шаг 1 — Определяем версию системы управления базой данных

Самые современные дистрибутивы Linux поставляются с MySQL или MariaDB, последняя является полностью совместимой заменой MySQL. В зависимости от используемой СУБД и её версии, вам нужно использовать различные команды для восстановления пароля рута.

Вы можете проверить вашу версию следующей командой:

mysql --version

Для MySQL вы увидите что-то вроде:

mysql  Ver 14.14 Distrib 5.7.17, for Linux (x86_64) using  EditLine wrapper

Для MariaDB вывод будет примерно таким:

mysql  Ver 15.1 Distrib 10.0.29-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Запомните какая база данных и какой версии у вас запущена, поскольку они пригодятся нам позже. Далее вам нужно остановить базу данных для ручного доступа к ней.

Шаг 5 — Обычный перезапуск сервера базы данных

Для начала, остановите экземпляр сервера базы данных, который вы запустили вручную на Шаге 3. Эта команда ищет PID или ID процесса для процесса MySQL или MariaDB и отправляет SIGTERM для сообщения процессу мягко выйти после завершения операций очистки.

Для MySQL и MariaDB используйте:

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

Затем перезапустите сервис используя systemctl.

sudo systemctl start mysql

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

mysql -u root -p

Эта команда должна вызвать приглашение в который нужно ввести новый пароль. Введите его, вы должны получить доступ к интерфейсу командной строки базы данных, как это обычно и происходит.

Дополнительно:  Что делать, если тормозит ноутбук с Windows 10: 20 способов ускорить ноут

Проверка и настройка для более удобного использования в дальнейшем

Чтобы проверить все ли у вас получилось, давайте попробуем авторизоваться в сервисе:

mysql -uroot -p<новый_пароль>


Как видите, авторизация прошла успешно. Чтобы сделать дальнейшее использование сервиса более комфортным, можно сохранить новый пароль в специальный файл в вашем домашнем каталоге. Это позволит вам в дальнейшем не вводить пароль для входа в сервис:

cat << EOF > ~/.my.cnf


Зачем может понадобиться сбрасывать пароль

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

Шаг 2 — Остановка сервера базы данных

Для изменения пароля root вы должны заранее отключить сервер базы данных.

Для MySQL и MariaDB вы можете сделать это:

sudo systemctl stop mysql

После того, как сервер остановлен, вы вручную получите к нему доступ для сброса пароля рута.

Шаг 3 — Перезапуск сервера базы данных без проверки разрешений

Если вы запускаете MySQL и MariaDB без загрузки информации о привилегиях пользователя, она позволит вам без ввода пароля получить доступ к командной строке базы данных с привилегиями рута. Это позволит вам получить доступ к базе данных без знания парольной фразы.

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

Запустите базу данных без загрузки таблиц привилегий и без доступа к сети:

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

Амперсант на конце этой команды сделает так, что процесс запустится в фоне, поэтому вы сможете продолжать использовать ваш терминал.

mysqld_safe Directory ‘/var/run/mysqld’ for UNIX socket file don’t exists.

Если вы видите ошибку

mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

То выполните следующие команды:

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

И запустите ещё раз:

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

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

mysql -u root

Вы сразу же увидите приглашение оболочки базы данных.

Приглашение командной строки MySQL:

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


Приглашение командной строки MariaDB:

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.0.29-MariaDB-0ubuntu0.16.10.1 Ubuntu 16.10

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Теперь, когда у вас имеется рут доступ, вы можете изменить пароль рута.

Шаг 4 — Смена пароля рута

Давайте скажем серверу баз данных перегрузить таблицы привилегий введя команду FLUSH PRIVILEGES.


Теперь действительно мы можем поменять пароль рута.

Для MySQL 5.7.6 и новее, а также для MariaDB 10.1.20 и новее используйте следующую команду:

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

Для MySQL 5.7.5 и старее, а также для MariaDB 10.1.20 и старее используйте:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('новый_пароль');

Не забудьте поменять новый_пароль на выбранный вами новый пароль.

UPDATE mysql.user SET authentication_string = PASSWORD('новый_пароль') WHERE User = 'root' AND Host = 'localhost';

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

flush privileges;

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

Query OK, 0 rows affected (0,29 sec)

Выходим из сессии:


Пароль изменён, вы можете остановить запущенный вручную экземпляр сервера базы данных и перезапустить его как это было раньше.


Теперь вы знаете, как сбросить root-пароль для сервисов MySQL или MariaDB, знаете зачем может понадобиться эта операция и как сделать дальнейшее использование данного приложения более комфортным.

Литейный пр., д. 26, Лит. А

+7 (812) 403-06-99

Mariadb смена пароля root


Литейный пр., д. 26, Лит. А

+7 (812) 403-06-99

Mariadb смена пароля root



Теперь вы восстановили административный доступ к серверу MySQL или MariaDB. Убедитесь, что новый пароль рута, который вы выбрали, безопасный и храните его в надёжном месте.

Оцените статью
Master Hi-technology
Добавить комментарий