【问题标题】:How to resolve access denied error for user "root@localhost"如何解决用户“root@localhost”的访问被拒绝错误
【发布时间】:2014-02-10 13:37:46
【问题描述】:

在 information_schema 数据库中插入值时,我想解决用户“root@localhost”密码“否”的访问被拒绝错误。

我已将所有权限授予 root 用户。但我仍然遇到同样的错误。

【问题讨论】:

    标签: phpmyadmin


    【解决方案1】:

    首先,这听起来不是一个好主意。您正在为任何偶然发现您的 web ui 的人授予 root 权限。

    我建议创建一个(或多个)新用户,该用户有权只做他们需要做的事情。

    如果您 - 必须 - 通过 ui 以 root 身份执行某些操作,那么为了您自己的安全,请设置一个强密码!

    【讨论】:

    • 非常感谢您的回答。
    【解决方案2】:

    我不认为你在尝试做你真正想做的事情。例如,您尝试采取的实际步骤不会完成您想要的操作。

    您不应该能够直接插入到INFORMATION_SCHEMA。来自the manual

    INFORMATION_SCHEMA 数据库包含几个只读表。它们实际上是视图,而不是基表,因此没有与它们关联的文件,并且您不能在它们上设置触发器。此外,没有同名的数据库目录。

    虽然您可以使用 USE 语句选择 INFORMATION_SCHEMA 作为默认数据库,但您只能读取表的内容,不能对其执行 INSERT、UPDATE 或 DELETE 操作。

    现在关于您的 phpMyAdmin 问题。您可以在命令行客户端登录吗?当您说您已将所有权限授予用户 root 时,您是从哪里做到的?另外,您的 MySQL 不是已经创建了具有所有权限的 root 用户吗?我不知道为什么你必须自己做赠款。请向我们展示您的config.inc.php 文件。

    【讨论】:

    • 是的,我的 MySQL 已经创建了一个具有所有权限的 root 用户,实际上我需要在 INFORMATION_SCHEMA 数据库的 ROUTINES 表(视图)中插入。可以这样做吗?
    • 您是否正在尝试创建例程?除了直接操作 INFORMATION_SCHEMA(数据库级别的 phpMyAdmin 的 Routines 选项卡或 CREATE PROCEDURE SQL 语句)之外,还有其他方法可以做到这一点。
    • 是的,我想创建例程。我正在从事的项目中的 ROUTINES 选项卡中有以前的条目。现在我想做同样的事情。你能告诉我我可以用什么方法来完成它吗?
    • 创建例程的方法通常是在数据库级别使用 phpMyAdmin 的 Routines 选项卡或 CREATE PROCEDURE SQL 语句。有关语法的更多信息,另请参阅dev.mysql.com/doc/refman/5.0/en/create-procedure.html
    猜你喜欢
    • 1970-01-01
    • 2015-03-08
    • 2011-04-13
    • 2019-05-15
    • 2017-08-23
    • 2013-07-28
    • 2023-03-20
    相关资源
    最近更新 更多