为什么我在php中遇到“用户拒绝访问”错误?

时间:2010-07-27 08:57:32

标签: php mysql backup mysql-error-1045

我正在运行此代码:

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语句有问题。

为什么我收到'拒绝用户访问'错误?

2 个答案:

答案 0 :(得分:3)

很抱歉这么说,但显然密码正确。要么你或你有不正确的特权。

答案 1 :(得分:3)

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

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

编辑:要授予此权限的查询(在我的脑海中,未经测试):

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

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

EDIT3:如果您使用方法1,请确保以root身份运行grant-statement - 用户无法为自己授予权限(如果可以的话,所有这些权限都将是无谓)