Сброс root пароля для MySQL 5.7 в Linux

Сброс root пароля для MySQL 5.7 в Linux

В Ubuntu 18.04, Mint 19.01, Debian 9.9 и т.д.

Иногда нам приходится сталкиваться с проблемой восстановления root пароля в "Мускуле", разные причины могли нас привести к этому плачевному результату, но выход обычно лежит на поверхности

На днях, у нас на работе, студенты-практиканты забыли пароль, который задавали при установке Mysql, ну бывает, сам только несколько месяцев назад восстанавливал root пароль на сервере после неудачной установки, и помнится никакие apt remove --purge не помогали снести Mysql "подчистую", для новой переустановки.

Иногда дополнительную сложность вызывает еще то, что восстановление пароля для более старших версий СУБД немного отличается для более свежих, что приводит к некоторым уже неработающим инструкциям.

Поэтому пришлось вспоминать как запустить "Мускул" в безопасном режиме для версии 5.7 и сделать небольшую заметку для себя в будущем, надеюсь и вам пригодится этот краткий гайд:    

#Останавливаем Mysql
sudo service mysql stop

#Создаем папку для сокета
sudo mkdir /var/run/mysqld

#Даем права пользователю mysql 
sudo chown mysql: /var/run/mysqld

#Запускаем Mysql без проверки каких-либо разрешений
sudo mysqld_safe --skip-grant-tables --skip-networking &

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

#Логинимся в базу mysql без пароля
mysql -u root mysql

#Делаем запрос на обновление пароля у пользователя root
UPDATE mysql.user SET authentication_string=PASSWORD('ВАШ_НОВЫЙ_ПАРОЛЬ'), plugin='mysql_native_password' WHERE user='root' AND host='localhost';

#Выходим из Mysql
EXIT;

#"Убиваем" запущенный Mysql 
sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

#Запускаем Mysql в нормальном режиме
sudo service mysql start






Сергей Мухин

Веб-разработчик со стажем программирования более 6 лет, постоянно учусь, люблю делать новые проекты.

Есть вопросы?

Я почти всегда в режиме онлайн

Связаться со мной