# How to reset MySQL password

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

Если Вы забыли или потеряли root пароль от MySQL или MariaDB, то его вполне можно восстановить, причём сделать это не так сложно.

В этой статье мы разберём процесс сброса пароля root для MySQL и MariaDB серверов.

### MySQL или MariaDB? <a href="#mysql-mariadb" id="mysql-mariadb"></a>

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

```bash
mysql --version
```

В результате Вы увидите следующий вывод для MySQL:

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

И такой вывод для MariaDB:

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

### Остановите сервер БД <a href="#id-1" id="id-1"></a>

Для изменения пароля необходимо остановить MySQL или MariaDB сервер.

Если Вы используете MySQL:

```bash
systemctl stop mysql
```

Если Вы используете MariaDB:

```bash
systemctl stop mariadb
```

### Запуск сервера БД в безопасном режиме <a href="#id-2" id="id-2"></a>

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

Для того, чтобы запустить сервер БД в безопасном режиме, выполните команду:

```bash
mysqld_safe --skip-grant-tables --skip-networking &
```

Далее, войдите в командную строку сервера БД под пользователем root:

```bash
mysql -u root
```

### Изменение пароля <a href="#id-3" id="id-3"></a>

Самый простой способ изменить пароль - использовать команду `ALTER USER`. Однако, эта команда недоступна из-за того, что мы не загрузили привилегии.

Чтобы команда сработала, выполните:

```sql
FLUSH PRIVILEGES;
```

Теперь Вы можете непосредственно установить новый пароль с помощью одной из следующих команд.

Если Вы используете MySQL 5.7.6 и выше, либо MariaDB 10.1.20 и выше, то Ваша команда:

```sql
ALTER USER 'root'@'localhist' IDENTIFIED BY '<НОВЫЙ ПАРОЛЬ>';
```

Если Вы используете MySQL версии 5.7.5 и ниже, либо MariaDB 10.1.20 и ниже, то:

```sql
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('<НОВЫЙ ПАРОЛЬ>');
```

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

```
Query OK, 0 rows affected (0.00 sec)
```

### Запуска сервера БД в обычном режиме <a href="#id-4" id="id-4"></a>

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

Для MySQL введите команду:

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

Для MariaDB:

```bash
kill `cat /var/run/mariadb/mariadb.pid`
```

Далее запустите сервер БД с помощью утилиты systemctl.

Для MySQL:

```bash
systemctl start mysql
```

Для MariaDB:

```bash
systemctl start mariadb
```

Теперь проверьте, можете ли Вы войти в командную строку сервера БД с новым паролем, для этого введите команду:

```bash
mysql -u root -p
```

Далее у Вас будет запрошен пароль, введите его и нажмите **`ENTER`**. Если войти удастся, значит изменение пароля прошло успешно.\
