28-07-2019

Восстановить доступ к root MySQL Ubuntu 18.04

 

Если вы забыли пароль к root MySQL, есть шанс восстановить доступ с помощью смены пароля.
Для начала остановите службу MySQL.

sudo service mysql stop

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

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

Теперь запускаем MySQL со следующими параметрами.

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

Проверяем, что все работает (запущен ли процесс).

jobs

В ответ должны получить в консоли.
[1]+ Запущен sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &

На данном этапе теперь можем получить доступ к root MySQL без пароля.

mysql -u root

Что бы установить новый пароль для 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

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

sudo pkill mysqld

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

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

sudo service mysql start

Вход под новым паролем.

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>

Возможно вас это заинтересует?