답변:
users 테이블에 행을 추가하여 새 사용자를 만들 수 있습니다. 비밀번호 필드는 MD5 해시 비밀번호를 포함해야합니다. 온라인 MD5 생성기를 사용하거나 PHPMyAdmin을 사용하는 경우 일반 암호를 입력하는 텍스트 상자 옆의 MD5 기능을 선택하십시오. 새로 작성된 사용자의 사용자 ID (uid)를 기록하십시오. 그런 다음 역할 테이블에서 충분한 권한이있는 역할을 찾아야합니다. 역할 ID (rid)를 찾고 uid를 입력하고 users_roles 테이블의 새 행에서 제거하십시오.
클라이언트가 사용자 1로 모든 작업을 수행하므로 관리자 액세스 권한을 부여하는 역할이없는 경우 약간 더 복잡한 트릭을 수행해야합니다. 사용자 1의 비밀번호 해시를 어딘가에 저장하고 사용자 1의 새 비밀번호를 임시로 추가하십시오. 그런 다음 사용자 1로 로그인하여 자신에 대한 새 계정, 충분한 권한이있는 새 역할을 작성하고 해당 역할에 자신을 추가하십시오. 그런 다음 데이터베이스에서 사용자 1을 편집하고 비밀번호를 복원하십시오. 역할이 항상 모든 권한을 갖도록 관리자 역할 을 추천 할 수 있습니다 .
훨씬 쉬운 방법이 있습니다.
http://mysite/user
암호 복구 링크로 이동하여 클릭하십시오.물론 이것은 dev 시스템이 drupal이 메일을 즉시 보낼 수 있다고 가정합니다. 이것은 대부분의 Linux 및 osx 박스에 해당하지만 Windows에는 해당되지 않습니다.
drush uli
사용자 1로 로그인하는 것입니다.
데이터베이스에 액세스 할 수 있으면 다음 쿼리를 실행하십시오.
UPDATE users
SET name='admin',
pass='$S$Drl0vgZ9yuU9uc4JyaTMHxMPriC7q/PsOUOx52fCrVQSTpI/Tu4x',
status=1
WHERE uid = 1;
로그인 세부 사항은 다음과 같습니다.
사용자 이름 = 관리자
비밀번호 = drupal
여기 참조 :
https://knackforge.com/blog/sivaji/different-ways-reset-drupal-admin-password
$user = array();
$user['status'] = 1; //for active user
$user['mail'] = 'test@test.com';
//profile field $user['profile_field_fname'] = 'Vikrant';
$user_account = array();
if($user_uid = module_name_get_uid_by_email($user['mail'])) { //It will use for update.
$user_account = user_load(array(uid => $user_uid));
}
//save or update user information.
user_save($user_account, $user);
//Check existing record by email.
function module_name_get_uid_by_email($email){
$query = db_query("SELECT uid FROM {users} WHERE mail = '%s'",$email);
$result = db_fetch_object($query);
return $result->uid;
}
위의 코드를 사용해보십시오.
수행 할 수있는 작업은 데이터베이스로 이동하여 이전 관리자 비밀번호를 저장하고 관리자 비밀번호를 재설정 한 후 로그인 한 다음 새 사용자를 작성한 다음 관리자 비밀번호를 다시 시작하기 전의 비밀번호로 재설정하는 것입니다.
drush에 액세스 할 수있는 경우 다음을 수행 할 수 있습니다.
cd <drupal root directory>
php scripts/password-hash.sh 'drupal'
그런 다음 위에서 생성 한 MD5 해시 비밀번호를 가져 와서 다음을 수행하십시오.
drush sql-cli
update users set name='admin', pass='pasted_big_hash_from_above' where uid=1;
quit
그 트릭을해야합니다.
( 소스 )