заметки веб-разработчика

Как сбросить пароль root MySQL на Ubuntu 18.04

17 мая 2018 - 22:11 -- ikode

1) Останавливаем текущую службу MySQL:

sudo service mysql stop

2) Создаем каталог /var/run/mysqld который будет использоваться процессом MySQL для хранения и доступа к файлу сокета, а также даем необходимые права:

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

3) Запускаем MySQL со следующими параметрами:

sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &

4) Убеждаемся, что процесс запущен:

jobs
[1]+ Запущен sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &

5) На этом этапе мы можем получить доступ к MySQL без пароля.
Входим командой:

mysql -u root

6) Затем сбрасываем пароль root следующей последовательностью запросов:

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> USE mysql;
Database changed

mysql> UPDATE user SET authentication_string=PASSWORD("123") WHERE User='root';
Query OK, 1 row affected, 1 warning (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 1

mysql> UPDATE user SET plugin="mysql_native_password" WHERE User='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> quit
Bye

Мы установили пароль "123" для пользователя "root".

7) Завершаем текущий mysqld процесс:

sudo pkill mysqld
[1]+ Завершён sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking

8) Запускаем службу MySQL:

sudo service mysql start

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

mysql -u root --password=123
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.22-0ubuntu18.04.1 (Ubuntu)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

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

mysql> 

Готово!

Теги: