Как сбросить пароль root в MySQL 8 в Linux Ubuntu 20.10

Очень много времени потратил на поиск решения как же сменить/сбросить пароль в MySQL у пользователя root. Ничего не помогало, в том числе официальная документация по сбросу пароля. В процессе шло что-то не так и даже если команды какие-то выполнялись то результата нужного не получал.

Видимо преимущественно оказалось, что проблема была в том, что при выполнении команд из под сеанса пользователя система переназначает параметр socketpath.

Поэтому в первую очередь в файле конфигурации MySQL нужно прописать принудительно корректный путь до сокета.

Итак, перезапускаем MySQL

sudo service mysql restart

Выводим список сокетов и ищем где располагается mysqld.sock когда он запускается системой

sudo find / -type s

У меня он расположен в /run/mysqld/mysqld.sock

Открываем конфигурационный файл (мне удобнее через gedit, уж простите, можете использовать свой редактор)

sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf

Вставляете или заменяете параметр socket и сохраняете изменения

socket = /run/mysqld/mysqld.sock

Затем в терминале вводите команду

sudo mysqld_safe —skip-grant-tables &

После чего запускаем MySQL от пользователя root

sudo mysql

Откроется консоль, вбиваем команду и выполняем

ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘newpassword’;
Запуск mysql с отключением контроля прав и смена пароля пользователя root

Все, смена пароля пользователя произведена. Можно писать exit и выходить из консоли.

Пробуйте зайти под пользователем

mysql -u root -p

Если система все еще не дает зайти — попробуйте пересоздать пользователя root.

Заходим под пользователем root под пользователем с полными правами

sudo mysql -u root

Удаляем пользователя root

DROP USER ‘root’@’localhost’;

Создаем нового пользователя с паролем newpassword

CREATE USER ‘root’@’%’ IDENTIFIED BY ‘newpassword’

Назначаем пользователю полные права

GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ WITH GRANT OPTION;

Обновляем данные о правах пользователей

FLUSH PRIVILEGES;

Выходим из консоли MySQL через команду exit.

И пробуем залогиниться из под обычного пользователя

mysql -u root -p

Вбиваем пароль и вход должен закончиться успешно. Выходим в терминал командой exit.

Возможно, что можно просто где-то в правах разрешить пользователю root входить не из под суперпользователя, но у меня нет времени искать данное решение

Пересоздание пользователя root в MySQL с назначением полных прав

Поделиться:
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Читайте также: