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