php - 我不小心删除了moodle(phpmyadmin)中的管理员用户,我无法访问网站管理中的任何内容

标签 php mysql phpmyadmin

如果没有我们无法进行任何更改,我就无法访问网站管理,现在如何在 phpmyadmin 中为新用户分配管理员角色,如果有人知道的话你可以帮我吗

最佳答案

您将弄乱数据库,因此请务必小心谨慎。在开始之前备份数据库甚至是一个好主意。

这将涉及使用 phpmyadmin 或其他一些允许您访问数据库的工具。您要做的第一件事是验证您的管理员帐户是否确实消失了。为此,请使用 phpmyadmin 访问您的 Moodle 数据库。您正在查找的表很可能名为 mdl_user。在此表中,您应该看到用户 ID(第一列)为 1 或 2(最有可能为 2)的用户。如果您在安装服务器时未更改管理员用户名,则在用户名列中您应该看到管理员用户名。如果您找不到用户名,那么它可能已经消失了。无论哪种方式,您想要从此表中获取的是您想要设为管理员的用户的用户 ID,该用户可以是您或管理员用户帐户。记住这个 ID 号。

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

现在您需要找到 mdl_role_assignments 表。该表根据分配给每个用户的上下文跟踪分配给每个用户的所有角色。这意味着对于 Moodle 中您拥有角色的每个位置,此表中都会有一个条目。例如,假设我是一门类(class)的教师,另一门类(class)的学生,并且我在我作为学生的类(class)中的特定事件中担任教师角色。在此示例中,角色分配表中有 3 个条目,每个条目对应不同的角色。根据分配角色的上下文,用户可以在此表中拥有数十个不同的角色。

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

这将为您提供一个现在可以担任管理员角色的用户。

来源here

关于php - 我不小心删除了moodle(phpmyadmin)中的管理员用户,我无法访问网站管理中的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28065591/

相关文章:

php - DES_解密和DES_加密 : MySql & phpMyadmin

php - 页面加载时调用 javascript 链接

php - 为什么 XAMPP 不适合生产?

php - 将文本存储到数据库中并使用不同的 CSS 类发布

php - 如何在docker容器中启用php的mysql扩展?

MySQL 服务器在 wampserver 中消失了

mysql - mysql 中数据类型 float 的默认大小 - phpmyadmin

php读取文件用于mysql导入

php - 从查询/ View 字段中查找基础字段

mysql - 使用2个左连接不起作用但单独可以得到结果