如何在没有管理员凭据的情况下控制我的网络空间上的 Drupal 安装?

如何在没有管理员凭据的情况下控制我的网络空间上的 Drupal 安装?

最近有人用 Drupal 为我建立了一个网站,但在我获得他的管理员凭据之前,我失去了与他的联系。由于这是我的网站空间,我可以访问文件和数据库(我已经下载了),但我无法进入 Drupal 配置。

有什么方法可以接管这个 Drupal 安装吗?还是我必须重新安装?

答案1

如果您可以直接访问数据库(通过 phpMyAdmin 或其他方式),则必须执行查询来更改超级管理员密码。

首先,您需要一个要使用的密码的 MD5 哈希值。 访问此网站,然后输入您想要用于密码的文本,单击按钮,您将获得 MD5 哈希字符串。

接下来,登录数据库。您需要对 Drupal 数据库执行以下查询来重置管理员用户名和密码:

如果您不使用 MySQL,查询语法可能会略有变化:

UPDATE `users` SET `name`='your login name',
`pass`='your password in MD5 hash form' WHERE `uid`=1;

此时您应该能够使用您指定的管理员凭据登录。

答案2

Heather 的想法很正确。一旦您有权访问数据库,您就可以通过简单的查询更改密码。如果您想省去访问 MD5 网站的步骤,您还可以使用 MySQL 内置函数,如下所示:

UPDATE `users` SET `pass` = MD5('mynewpassword') WHERE `uid` =1;

笔记: 这似乎只适用于 Drupal 站点 <= 6.x 版本。如果您使用的是 7.x 版本,MD5 哈希将不起作用(我猜它使用某种盐字​​符串)。要在 7.x 版本上重置密码,您只需使用如下查询将管理员用户的电子邮件地址更改为您的电子邮件地址:

UPDATE users SET mail = '[email protected]' WHERE uid = 1;

完成后,您可以转到正常登录页面并请求重置密码,密码将发送到您的电子邮件地址。

答案3

最简单的方法是安装 drush 并使用 drush uli 命令。这样您就可以通过一次性链接直接进入。

例如:

drush uli -l mydomain.com

您还可以使用以下方式以特定用户身份登录:

drush uli -l mydomain.com joe_user

请注意,如果您的网站已设置 base_url,则不需要 -l 选项。

Drush 是 Drupal 的命令行界面,提供了多种非常方便的功能。请参阅https://github.com/drush-ops/drush有关获取和使用 drush 的信息。

相关内容