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

Останавливаем текущую службу 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 &

На этом этапе мы можем получить доступ к 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

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

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

sudo pkill mysqld
jobs

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

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

sudo service mysql start

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

Готово!