无意中我删除了moodle(phpmyadmin)中的管理员用户,我无法访问siteadministration中的任何内容

时间:2015-01-21 11:02:29

标签: php mysql phpmyadmin

我无法访问网站管理,但我们无法进行任何更改,现在如何在phpmyadmin中为新用户分配管理员角色,如果知道任何一种方法可以帮助我

1 个答案:

答案 0 :(得分:2)

你将要搞乱数据库,所以要非常小心并谨慎对待你所做的事情。在开始之前备份数据库甚至是个好主意。

这将涉及使用phpmyadmin或其他一些允许您访问数据库的工具。您要做的第一件事就是验证您的管理员帐户是否真的消失了。为此,请使用phpmyadmin访问您的Moodle数据库。您正在寻找的表很可能称为mdl_user。在此表中,您应该看到用户ID(第一列)最有可能为1或2的用户2.在用户名列中,如果在安装服务器时未更改管理员用户名,则应看到管理员用户名。如果找不到用户名,那么它可能就会消失。无论哪种方式,您希望从此表中删除的是您要创建管理员的用户的用户ID,可能是您或管理员用户帐户。记住这个身份证号码。

现在找到名为mdl_role的表。此表显示您当前在服务器上拥有的各种角色。管理员角色很可能具有1的id(第1列),但检查此表是否确定。无论管理员角色的角色ID是什么,都要记住这个数字。

现在您需要找到mdl_role_assignments表。此表跟踪分配给每个用户的所有角色,无论其分配的位置如何。这意味着,对于Moodle中您有角色的每个地方,此表中都会有一个条目。例如,假设我是一门课程的老师,另一门课程的学生,我在学生所在的课程中被赋予了教师的角色。在这个例子中,我将在角色分配表中有3个条目,每个条目对应一个不同的角色。根据分配角色的上下文,用户可以在此表中拥有数十个不同的角色。

在mdl_role_assignments表的userid列中,找到您的用户或管理员用户。该用户可能有多个条目。找到正确的用户ID后,请查看contextid列。您正在寻找1的上下文。如果没有1的上下文,那么您需要编辑其中一个现有的上下文,使其成为1,并了解您现在正从该现有角色中删除此用户,并且可能需要稍后再重新分配。另一种选择是只向表中添加一个新行。现在,一旦将contextid更改为1,您需要将roleid更改为与之前提到的mdl_role表中的admin角色id对应的任何数字。通常这也是1。将roleid更改为1并保存更改。

这应该会为您提供一个现在可以在管理员角色中运行的用户。

来源here