Как сбросить пароль root в MySQL и MariaDB? — Information Security Squad

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

В старых версиях MySQL, если вы забыли или потеряли пароль root для MySQL, вы можете просмотреть текущий пароль в файле my.cnf.

В современных версиях MySQL и MariaDB этот трюк не сработает.

Давайте посмотрим, как сбросить пароль root в MySQL и MariaDB в дистрибутивах Linux (в этом примере используется CentOS 7).

Способ сброса пароля root в MySQL довольно прост:

  • Вам необходим доступ оболочки к консоли сервера Linux и привилегии root (или учетная запись sudo);
  • Вам нужно остановить демон MySQL и запустить его с помощью специального ключа;
  • Сбросьте пароль root из командной строки MySQL;
  • Перезапустите службу MySQL.

Подключитесь к консоли сервера Linux (например, через SSH) и отобразите номер текущей версии MySQL:

$mysql –version

Система отобразит сообщение с номером версии БД. Например,

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

или

mysql Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1

Теперь вам нужно остановить демон базы данных. Для MySQL:

$sudo systemctl stop mysql

Для MaridDB

$sudo systemctl stop mariadb

Убедитесь, что процесс mysql (mariadb) остановлен:

$ps aux | grep mysql

Если все еще запущены процессы mysql, вам нужно заставить их прекратить использовать командой:

$sudo killall mysqld

Теперь вам нужно запустить MySQL в безопасном режиме без загрузки таблиц грантов и с отключенным доступом к сети (по соображениям безопасности):

$mysqld_safe --skip-grant-tables --skip-networking

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

$mysql -u root

В современных версиях MySQL команда ALTER USER используется для изменения пароля.

Но это не работает, если таблица привилегий отключена. Перезагрузите таблицу привилегий:

mysql> FLUSH PRIVILEGES;

Теперь вам нужно сбросить пароль root. В MySQL 5.7.6 и MariaDB 10.1.20 и более новых версиях используйте следующую команду:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewP@ssw0rd';

В предыдущих версиях MySQL и MariaDB использовалась команда:

mysql>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NewP@ssw0rd');

Вы также можете сбросить пароль root с помощью следующих команд:

mysql> use mysql; 
mysql> update user set password=PASSWORD("NewP@ssw0rd") where User='root'; 
mysql> flush privileges; 
mysql> quit
mysql -u root 
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 39 
MariaDB [(none)]> use mysql; 
Database changed 
MariaDB [mysql]> update user set password=PASSWORD("NewP@ssw0rd") where User='root'; 
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0

MariaDB [mysql]> flush privileges; 
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> quit 
Bye

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

$sudo killall mysqld

$sudo service mysqld start

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

$mysql -u root -p

Enter password:

Welcome to the MySQL monitor

 

cryptoparty

Cryptography is typically bypassed, not penetrated.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40