Никто не застрахован от потери root пароля MySQL. Поэтому в этой статье рассмотрим, как сбросить root пароль и восстановить доступ к MySQL. Чтобы спросить пароль понадобится доступ к серверу и учетка с sudo  привилегиями.

Для начала останавливаем MySQL сервер:

sudo systemctl stop mysql

Затем переходим к редактированию конфигурации systemd для MySQL, чтобы запустить MySQL сервер без таблиц привилегий.

sudo systemctl edit mysql

После чего вам нужно прописать:

[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking

Эти команды сбросят дефолтное значения и запустят новую команду для отключения таблиц привилегий, а также сетевое соединение.

После сохранения конфигурации, необходимо ее перезапустить:

sudo systemctl daemon-reload

Затем включить MySQL сервер:

sudo systemctl start mysql

Теперь вы можете зайти в MySQL под учеткой root без пароля:

sudo mysql -u root

Сбросьте привилегии:

FLUSH PRIVILEGES;

Затем установите новый root пароль:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'тут пароль';

Сбросьте конфигурацию, которую меняли ранее:

sudo systemctl revert mysql

Перезапустите ее:

sudo systemctl daemon-reload

Перезапустите MySQL сервер:

sudo systemctl restart mysql

Теперь для входа под root можно использовать новый пароль:

mysql -u root -p