6.5.5 Как восстановить пароль root MySQL
При потери пароля root от MySQL его можно легко восстановить имея root доступ к самому серверу. Выполняется это с помощью входа в MySQL в безопасном режиме, о чем ниже.
Учите: пароль root на сервере и пароль root MySQL это два разных пароля.
Пошаговая инструкция на примере Ubuntu
Важно: если у Вас система на базе ОС+ISPManager4, обязательно ознакомьтесь со вторым разделом этой статьи.
1. Сначала остановите службу MySQL. Для некоторых других систем семейства Linux команды могут отличаться:
2. Запустите MySQL без загрузки таблиц прав доступа:
Дополнительно: что делать если mysqld_safe
не запускается? Распространенными решениями являются:
Используйте sudo mysqld
Альтернативная команда выглядит следующим образом:
Отключите monit или подобные сервисы
На серверах с панелью ISPManager и с многим другими панелями используется monit или аналоги. В таком случае сначала необходимо отключить мониторинг процесса mysqld командой monit unmonitor mysqld
и только затем убить процесс. После чего включить его снова monit monitor mysqld
.
Или временно отключить monit вовсе:
Запущенные процессы MySQL
Уже запущенные параллельные процессы MySQL могут создать необходимость их ручного прекращения. Сначала получим их список командой:
Затем остановим процессы следующей командой, где <PID>
замените идентификатором процесса:
Недостаточно прав или проблемы с директориями
Иногда mysqld_safe
не запускается из-за проблем с правами или отсутствующих директорий. Попробуйте:
Также убедитесь, что /var/run/mysqld/
существует и имеет правильные права:
3. Теперь подключитесь к серверу MySQL без пароля:
4. Сначала переключитесь на базу данных mysql:
5. Сначала нужно идентифицировать сколько пользователей root вообще существует в нашем MySQL. Сделать это можно следующим образом:
Что выдаст следующий результат:
Пароль нужно будет сбросить для каждого из этих пользователей, если Ваш проект не требует иначе.
6. Затем необходимо сбросьте пароль на новый для каждого пользователя root (замените NewPassword на пароль и localhost на нужную переменную host, список которых Вы получили в предыдущем шаге):
Для MySQL 5.7 и более ранних версий
5. Перезапустите MySQL в нормальном режиме. Для этого выйдите из MySQL:
И остановите MySQL:
6. Запустите ее снова:
7. Проверьте доступ. Попробуйте войти с новым паролем:
Введите новый пароль. Если вход выполнен успешно, сброс завершён.
Нюансы с панелями управления
На серверах с установленной панелью управления про смену пароля root MySQL нужно также уведомить и саму панель, иначе она не сможет нормально функционировать.
Ниже мы приведем примеры для релевантных панелей управления.
ISPManager4
1. Перейдите в раздел Серверы баз данных под root, выберите MySQL и нажмите Изменить:
2. Установите новый пароль root MySQL вместо старого:
3. Перезапустите панель командой killall -9 ispmgr
или полноценной перезагрузкой сервера.