В случае утраты пароля от аккаунта администратора и невозможности восстановить его через форму восстановления (например был указан несуществующий адрес электронной почты или тех.сбое на сайте) пароль можно восстановить с помощью генерации нового пароля (его хэша) и последующему обновлению его в базе данных.
Для сброса пароля администратора рассмотрим два варианта в первом случае нам понадобиться доступ к командной строке сервера, а во втором к командной строке сервера и к базе данных. Лично мне больше нравится второй.
1 СПОСОБ
Генерация нового пароля
Для генерациия хэша нового пароля выполните следующую команду из корневого каталога Друпал:
$ php core/scripts/password-hash.sh 'your-new-pass-here'
password: your-new-pass-here hash: YOUR_HASH
1
2
3
4
$ php core/scripts/password-hash.sh 'your-new-pass-here'
password: your-new-pass-here hash: YOUR_HASH
Для Drupal 7 команда выглядит как
$ php scripts/password-hash.sh 'your-new-pass-here'
1
$ php scripts/password-hash.sh 'your-new-pass-here'
…и кеш чистить не нужно.
Обновление пароля администратора.
Теперь обновляем пароль пользователя, в нашем случае — Администратора с UID 1, который одинаков для Drupal 7/8/9/10.
UPDATE users_field_data SET pass='YOUR_HASH'
WHERE uid = 1;
1
2
UPDATE users_field_data SET pass='YOUR_HASH'
WHERE uid = 1;
Очистка кеша
Если попробовать войти с новым паролем сейчас то ничего не выйдет, т.к. система авторизации Друпал не обращается к таблице users_field_data каждый раз, а использует кеш.
Для очистки кеша администратора выполняем следующий SQL запрос:
DELETE FROM cache_entity WHERE cid = 'values:user:1';
1
2
DELETE FROM cache_entity WHERE cid = 'values:user:1';
Готово!
ВТОРОЙ СПОСОБ
Восстановление пароля в phpmyadmin
1) Заходим в базу данных через phpmyadmin.
2) Находим таблицу "users" и заходим в нее.
3) Находим в списке пользователей нужного пользователя и жмем "Редактировать".
4) В поле pass, в столбике "значение", ввести