Давайте дружить в Телеграме: рассказываем про новые фичи, общаемся в комментах, прислушиваемся к вашим идеям Подписаться

Как сбросить пароль root MySQL: пошаговая инструкция

Виталий Богданов
Виталий Богданов
Технический писатель
19 июля 2023 г.
2328
7 минут чтения
Средний рейтинг статьи: 4

Получение доступа к базам данных является важной задачей при управлении серверами и обслуживании веб-приложений. Одной из самых распространенных и мощных систем управления базами данных (СУБД) является MySQL. Как администратор базы данных, вы храните важную информацию, и пароль root MySQL играет решающую роль в обеспечении безопасности и целостности данных.

Время от времени может возникнуть ситуация, когда вы теряете или забываете пароль root MySQL. Это может произойти по разным причинам, от непредвиденных обстоятельств до изменения команды или просто человеческой ошибки. В таких случаях критически важно знать, как сбросить пароль root и восстановить доступ к базе данных.

В данной статье мы представим вам методы и инструменты, которые помогут сбросить пароль root в MySQL и восстановить полный контроль над вашей базой данных. Мы охватим различные подходы, начиная от использования официальных инструментов MySQL, таких как mysqladmin и mysqld_safe, до редактирования файлов конфигурации и внесения изменений в систему.

Стоит отметить, что восстановление доступа к паролю root MySQL является сложной задачей и требует определенных знаний и навыков. Поэтому рекомендуем внимательно ознакомиться с инструкциями, чтобы избежать возможных проблем или потери данных.

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

Итак, если вы столкнулись с проблемой утери пароля root в MySQL, не волнуйтесь. В статье ниже вы найдете подробные инструкции и рекомендации, которые помогут вам восстановить доступ и вернуться к управлению вашей базой данных MySQL.

MySQL не использует PAM и пароль от SSH не подойдёт. Пароль root задаётся в процессе установки сервера баз данных, на этапе формирования таблиц привилегий.

Если после попытки входа вместо приветствия база данных выдаёт ошибку ERROR 1045: Access denied for user 'root'@'localhost', значит нужно сбросить root-пароль.

Чтобы в MySQL 8 сбросить пароль root, необходимо пройти несложную процедуру. Она одинаково подходит как для традиционного MySQL, так и для MariaDB. Они полностью совместимы и имеют одинаковые команды.

В Ubuntu сбросить пароль root для MySQL можно такими же методами, как и в Debian, конкретной привязки к ОС нет. Небольшое отличие возможно для CentOS 7, это мы отметим ниже в соответствующем пункте.

Как в MySQL сбросить пароль root методом skip-grant-tables

Достаточно распространённый способ, ввиду его простоты. Приводим пошаговый план этой операции:

Шаг 1

Остановим службу базы данных:

service mysqld stop

Шаг 2

Запускаем службу без таблиц привилегий:

mysqld --skip-grant-tables&

Амперсанд в конце позволяет запустить службу в фоне и она не занимает отдельное окно терминала.

Шаг 3

Подключаемся к серверу. Так как таблицы привилегий не подключены, соответственно пароль вводить нет необходимости:

mysql -u root

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

Шаг 4

Подключаем таблицы привилегий:

FLUSH PRIVILEGES;

В ответ получаем: Query OK, 0 rows affected.

Шаг 5

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

ALTER USER 'root'@'localhost' IDENTIFIED BY 'ПАРОЛЬ';

Если этот запрос не сработал, попробуйте:

UPDATE `mysql`.`user` SET `password`=password('ПАРОЛЬ') WHERE `user`='root';

Или:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('ПАРОЛЬ');

На CentOS 7 сбросить пароль MySQL root можно, выполнив команду:

UPDATE `mysql`.`user` SET ` authentication_string`=password('ПАРОЛЬ') WHERE `user`='root';

Об успешности выполнения можно судить по ответу Query OK, 0 rows affected. Пароль может быть даже пустым значением, но в таком случае будет потеряна возможность подключения к серверу любыми другими способами, кроме командной строки. Пароль изменяется сразу после ввода команды. Проверить можно, например, подключившись через phpMyAdmin, если не было передано пустое значение.

Шаг 6

Выход из mysql:

quit;

В ответ получим Bye, вернётся обычный терминал.

Шаг 7

Запускаем сервер баз данных в штатном режиме:

service mysqld start

Как в MySQL сбросить пароль root на ОС Windows

Сброс пароля суперпользователя MySQL под ОС Windows схож с процедурой сброса root-пароля СУБД для Linux-систем. Некоторые отличия могут быть только в процессе поиска и запуска службы самой базы данных. Из-за разных названий служб MySQL и MariaDB нет привязки к названию «mysql», и иногда необходимо указывать конкретное название службы. Рассмотрим пошагово сброс пароля суперпользователя базы данных для ОС Windows.

Шаг 1

Открываем интерпретатор команд в режиме Администратора. В этом случае есть разница, какая база данных установлена, в Windows службы имеют различные названия. Проверяем, какая установлена:

Для MySQL:

sc qc "mysql"

Для MariaDB:

sc qc "mariadb"

В случае, если служба отсутствует, будет показано сообщение «Указанная служба не установлена». При успешном выполнении будет выведена основная служебная информация.

Шаг 2

Если не установлена переменная %PATH%, необходимо перейти в папку с исполняемым файлом службы базы данных, путь можно определить по ответу sc qc в «Имя_двоичного_файла». В нашем случае это С:\localhost\mariadb\bin\.

cd C:\localhost\mariadb\bin\

Если диск другой, то переходим на него, указав букву диска, например:

D:

Шаг 3

Остановим уже запущенную службу:

Для MySQL:

net stop mysql

Для MariaDB:

net stop mariadb

Шаг 4

Откроем окно дополнительного интерпретатора командой start. В отличие от Linux, в Windows амперсанд в конце команды не работает, а при запуске службы она не даст более вводить команды до окончания сессии (нажатии CTRL+C).

Шаг 5

Запуск сервера без привилегий (идентично для MySQL и MariaDB):

mysqld --skip-grant-tables

Шаг 6

Во втором окне вводим:

mysql -uroot -p

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

Шаг 7

Для начала необходимо выполнить команду:

FLUSH PRIVILEGES;

Без этой начальной команды можно получить ошибку при смене пароля: «ERROR 1290: The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement». 

Шаг 8

Выполняем команду:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'ПАРОЛЬ';

Примечание: если команда не сработала, попробуйте варианты из пятого шага инструкции для Linux-систем.

Закрываем окно интерпретатора с запущенной временной версией базы данных или нажимаем CTRL+C.

Шаг 9

Запускаем системную службу:

Для MySQL:

net start mysql

Для MariaDB:

net start mariadb

Заключение

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

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

  • Используйте сложные пароли, состоящие из комбинации букв, цифр и специальных символов, а также регулярно меняйте их. 
  • Ограничьте доступ к базе данных только необходимым пользователям, чтобы минимизировать риски несанкционированного доступа. 
  • Регулярно обновляйте систему MySQL, чтобы устранять известные уязвимости и получать последние исправления безопасности.
  • Регулярно создавайте резервные копии базы данных. Это ваша страховка в случае потери данных или сбоя системы. Разработайте стратегию резервного копирования, определите частоту и методы создания резервных копий, а также проверяйте их восстанавливаемость, чтобы быть уверенными в возможности восстановления данных.
  • Помните о важности обучения и саморазвития в области управления базами данных. Будьте в курсе последних тенденций, новых функций и инструментов MySQL. Воспользуйтесь обучающими ресурсами, участвуйте в семинарах и конференциях, а также общайтесь с опытными профессионалами в этой области. Постоянное обновление своих знаний и навыков поможет вам эффективно управлять базой данных и решать возникающие проблемы.

Восстановление пароля root в MySQL — это важная задача, требующая внимания и знаний. Однако с помощью изученных методов и рекомендаций, вы сможете справиться с этой задачей и вернуть полный контроль над вашей базой данных MySQL. Помните об обеспечении безопасности, создании резервных копий и постоянном обучении, и ваша работа с MySQL будет успешной и безопасной.

Зарегистрируйтесь и начните пользоваться
сервисами Timeweb Cloud прямо сейчас

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону