在drupal 7中更改管理员密码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在drupal 7中更改管理员密码相关的知识,希望对你有一定的参考价值。
我使用内置的Drupal 7用户模块,用户注册,忘记密码 - 电子邮件和所有这些东西。
我忘记了我的管理员密码。我可以访问我的网站,该网站托管在1and1.com上,并且还可以访问mysql?
是否可以通过SQL更改密码或电子邮件地址,以便我可以访问管理页面?
如果有可能如何?你能帮助我吗?
谢谢!
如果安装了Drush,则只需在站点根目录内的任何位置在终端中输入以下命令。
drush upwd admin --password=mynewpassword
在这里,admin
是用户名;谁的密码将更改为mynewpassword
。
经过几次研究,我尝试将以下代码存储在根目录下的php文件中
将其保存为password-reset-admin.php
<?php
define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
require_once DRUPAL_ROOT . '/includes/password.inc';
if (isset($_GET['pass']) && !empty($_GET['pass'])) {
$newhash = user_hash_password($_GET['pass']);
}
else {
die('Retry with ?pass=PASSWORD set in the URL');
}
$updatepass = db_update('users')
->fields(array(
'pass' => $newhash,
// 'name' => 'admin',
// 'mail' => '<a href="mailto:yourmail@domain.com'">yourmail@domain.com'</a>;
))
->condition('uid', '1', '=')
->execute();
print "Done. Please delete this file immediately!";
drupal_exit();
?>
然后通过以下方式访问php文件:
https://yoursite.com/password-reset-admin.php?pass=newpassword
它只是工作.. :)希望它有助于其他人。
请确保删除该文件。
要更改密码,您需要具有对您网站的shell访问权限。如果没有,请在本地计算机上下载drupal 7的副本。
然后,打开终端并导航到Drupal 7根文件夹。然后键入以下命令:
./scripts/password-hash.sh NEW_PASSWORD
用您需要的新密码替换NEW_PASSWORD
。
这将输出一个新密码哈希,复制此密码并转到您的数据库管理器(phpMyAdmin或类似)并将管理员密码更改为新生成的文本。
我不知道其他方法,因为Drupal不再使用MD5
而是使用散列算法。
将目录更改为Drupal的根目录。然后生成新的哈希。
在Drupal 7的情况下:
$ php scripts/password-hash.sh 'your-new-pass-here'
然后执行SQL查询以更新管理员密码:
UPDATE users_field_data SET pass='$S$Do7UQjqtEELNccdi92eCXcVJ2KnwUeHrSbK3YhFm8oR3lRJQbMB2' WHERE uid = 1;
在Drupal 8的情况下,脚本的路径将是:
$ php core/scripts/password-hash.sh 'your-new-pass-here'
更新数据库:
UPDATE users_field_data SET pass='$S$Do7UQjqtEELNccdi92eCXcVJ2KnwUeHrSbK3YhFm8oR3lRJQbMB2' WHERE uid = 1;
清理缓存:
DELETE FROM cache_entity WHERE cid = 'values:user:1';
如果您有权访问数据库,那么......
- 转到数据库中的users表,将管理员的电子邮件更改为您有权访问的电子邮件。
- 然后,转到yoursite.com/user/password并输入刚刚更改的电子邮件。
- 转到您的电子邮件,然后单击重置链接进入您的站点并重置密码。
完成!
经过测试,确实有效!
例如,通过PhpMyAdmin访问数据库中的表“users”(即此表可以有一个你在Drupal安装部分已经提到的前缀,所以yourPrefix_可以是你的项目名称mywebsitename_,在这种情况下你我会有mywebsitename_users。
您应该更改与“uid”列关联的“pass”列,其值为1(即admin用户帐户为1)。
作为密码的加密值:Admin_12345 =>
$ C $ DiffSVHg9tnttvyyyyyYGYVLAaZzv5EgSShOiR56D.mk8MpNks1II2
更换存储在数据库中的您已完全忘记的旧散列密码值后,您可以加入管理员帐户。
在您使用另一个帐户加入帐户后,请不要忘记更改密码:Admin_12345。
您可以生成查询here并在数据库中运行查询。
以上是关于在drupal 7中更改管理员密码的主要内容,如果未能解决你的问题,请参考以下文章