【问题标题】:Why am I getting 'access denied for user' error in php?为什么我在 php 中收到“拒绝用户访问”错误?
【发布时间】:2010-07-27 08:57:32
【问题描述】:

我正在运行这段代码:

include '../includes/connection.php';
$conn = dbConnect('backup');

$tableName  = 'orders';
$backupFile = '../backup/db-backup(' . $date . ').sql';
$query      = "SELECT * INTO OUTFILE '$backupFile' FROM $tableName";
$result = $conn->query($query) or die(mysqli_error($conn));

我收到此错误:

拒绝用户访问 'ideapale_amadmin'@'localhost'(使用 密码:是)

我知道密码和用户名是正确的,并且我已经测试了在不运行查询的情况下连接到数据库并且工作正常。此外,我当前使用的用户拥有所有权限。因此,我认为我的 sql 语句有问题。

为什么我会收到“拒绝用户访问”错误?

【问题讨论】:

  • 您的连接代码中可能存在一些小错误。您能告诉我们密码/用户名已编辑的连接代码吗?
  • 你能做一个“正常”的选择语句吗?如果是,那是您的权限有问题(注意:“文件”权限是全局设置的,也不是针对特定数据库的 - 也许您忽略了这一点)
  • 是的,我可以在同一页面上执行正常的选择语句。如何在服务器上设置全局权限?我可能会弄清楚如何在 wamp 上的 phpmyadmin 中做到这一点,但我只知道如何为连接到数据库的用户设置权限。在哪里为用户设置全局权限?
  • 查看我的帖子,对于全局权限,请在您的授权声明中使用*.*

标签: php mysql backup mysql-error-1045


【解决方案1】:

很抱歉,但显然密码正确。要么是那个,要么你的权限不正确。

【讨论】:

  • 我已经设置了所有权限。我还需要什么其他权限?
【解决方案2】:

在我的评论中已经说过了,但我认为这是解决方案:

“文件”权限是全局设置的,也不是针对特定数据库的-我认为您忽略了这一点,因此用户没有... INTO OUTFILE 的权限(也没有LOAD DATA INFILE... 的权限)

编辑: 授予此权限的查询(我想不到,未经测试):

GRANT FILE ON *.* TO 'myuser'@'localhost' IDENTIFIED BY 'mypasswd';

EDIT2: 要在 phpMyAdmin 中进行设置,只需单击 Server: localhost(打开 phpMyAdmin 时应该是起始页)然后单击 Privileges,选择您的用户并添加在数据部分打勾或FILE(因此,不要向下滚动并选择特定数据库)

EDIT3:如果您使用方法 1,请确保以 root 身份运行授权语句 - 用户不能为自己授予权限(如果可以,所有这些权限内容将是没意思)

【讨论】:

  • 如何在服务器上设置全局权限?我可能会弄清楚如何在 wamp 上的 phpmyadmin 中做到这一点,但我只知道如何为连接到数据库的用户设置权限。在哪里为用户设置全局权限?
  • 当我尝试运行你给我的 sql 语句时,我得到了访问被拒绝的错误。
  • 所以如果我使用方法 1,它应该是 GRANT FILE ON . TO 'root'@'localhost' IDENTIFIED BY 'mypasswd'?
  • 不,你应该以root身份登录mysql然后GRANT FILE ON *.* TO 'theuseriwanttogiveprivileges'@'localhost' IDENTIFIED BY 'theuserspasswd'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-23
  • 1970-01-01
  • 2020-04-26
  • 2012-01-21
  • 2022-07-07
  • 1970-01-01
相关资源
最近更新 更多