通过访问phpMyAdmin手动更改moodle管理员密码或创建另一个管理员帐户?

时间:2012-05-05 20:18:32

标签: php mysql phpmyadmin admin moodle

moodle平台上管理员登录的密码丢失。

我可以访问phpMyAdmin。

我去了mdl_user表,在那里我可以看到或编辑这个表。

我该怎么办?我可以将管理员输入的密码和密钥更改为已知密码,还是只添加管理员用户更简单?

怎么会这样?

8 个答案:

答案 0 :(得分:11)

仅在Moodle 2上进行了测试

您可以从命令行重置任何用户密码。在你的Moodle根目录中:

  

php admin / cli / reset_password.php

对于开发环境,您可能还需要禁用密码策略检查(这样您就可以输入一个小的快速输入密码)。编辑reset_password.php并发表评论:

  

// if(!check_password_policy($ password,$ errmsg)){
  // cli_error($ errmsg);

     

//}

答案 1 :(得分:10)

打开Moodle的config.php文件,找到定义$ CFG-> passwordsaltmain的行,并复制它的值(它是一串长随机字符)。

在PHPMyAdmin中,运行以下查询,根据需要替换值:

UPDATE mdl_user SET password = MD5(CONCAT('<new password>', '<password salt copied from config>')) WHERE id = <id of admin user>

答案 2 :(得分:1)

您可以检查源代码并查看哈希的计算方式。然后,您可以使用新密码和哈希函数创建一个新哈希。

我检查了source-code,并根据配置,使用md5或sha1进行哈希处理。因此,请检查您的配置并制作自己的哈希值。

// From the sourcecode:
if ($this->config->passtype === 'md5') {   // Re-format password accordingly
      $extpassword = md5($extpassword);
} else if ($this->config->passtype === 'sha1') {
      $extpassword = sha1($extpassword);
}

答案 3 :(得分:1)

如何使用MD5 HASH更改密码:

  1. 登录phpMyAdmin。 cPanel托管将具有数据库实用程序 在cpanel中称为PhpMyAdmin。如果Moodle安装在 非cPanel托管,联系托管公司获取信息 如何在服务器上编辑数据库。有关的更多信息 登录PhpMyAdmin,请参阅“如何管理”一文 我的控制面板(cpanel)中的PHPMyAdmin中的MySQL数据库?“。

  2. 在PhpMyAdmin中,找到名为mdl_user的表并选择它。由于Moodle有许多表,因此mdl_user表可能位于第二页。选择第二页。单击mdl_user表。

  3. 选择表格后,找到正在编辑的用户的表格行。点击带有铅笔图标的编辑链接。

  4. 密码字段中会有一系列字符和数字。这是加密密码,因此无法在数据库中查看。使用登录的新密码替换加密文本。

  5. 接下来,在左侧的下拉菜单中,选择MD5,然后单击Go。

  6. 也可以对电子邮件地址和用户名进行此操作。电子邮件和用户名不需要MD5哈希。

答案 4 :(得分:1)

另一种更快速,更方便的方法来生成一个新的MD5 HASH密码:

  1. 转到http://www.miraclesalad.com/webtools/md5.php并创建一个新密码,例如...... wintersnow123〜 (它看起来像这样:“003df036e1a99aad3eaba7c3ca46723d”没有引号)。
  2. 复制您提交的单词生成的md5哈希密码(很容易),并准备粘贴它。
  3. 使用phpMyAdmin登录MySQL数据库。
  4. 导航到用户表(对于Moodle,它叫做“mdl_user”)并浏览数据。
  5. 当您找到“admin”用户帐户时,请单击编辑,然后粘贴您在步骤2中复制的新密码(“003df036e1a99aad3eaba7c3ca46723d”)。 (进入密码字段。)这将取代您之前的内容。
  6. 尝试使用您的管理员用户帐户和新密码登录(密码:wintersnow123~)

答案 5 :(得分:0)

显然Moodle版本1.9.9只用md5对密码进行一次哈希(完全不含盐!!)。

所以唯一要做的就是在管理行中用你想要的md5应用的密码替换密码。

答案 6 :(得分:0)

目前,Moodle在密码中引入了一个salt,用于对每个安装中的密码进行唯一加密。

如果您没有删除或更改访客帐户密码,您可以将其值复制到管理员用户密码以便能够登录。

稍后您可以将其更改为您喜欢的任何内容。

用户帐户存储在mdl_user表中。

答案 7 :(得分:0)

对于 Moodle 3.10。

第 1 步 在 Moodle 根目录创建一个临时的 PHP 文件来生成密码。

<?php
include('config.php');
echo password_hash('new_password', PASSWORD_BCRYPT);

现在运行这个 php 脚本来获取 Moodle 框架生成的新密码。

第 2 步: 打开 PHPMyAdmin 并选择 Moodle 数据库。 运行此查询。

update mdl_user set password="new_password_hash" where username="admin";

第 3 步: 删除Moodle根目录下的temp php脚本文件。