【问题标题】:Grant database user folder access授予数据库用户文件夹访问权限
【发布时间】:2010-08-07 18:13:44
【问题描述】:

我正在尝试使用以下查询从 mysql 创建数据的 csv 导出:

SELECT * INTO OUTFILE '/tmp/result.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
FROM getfreepellets WHERE 1

我收到以下错误:

#1045 - Access denied for user '[username]'@'localhost' (using password: YES)

(删除了用户名,但它是正确的)

我将如何授予该用户在服务器上创建文件的访问权限?

编辑:

我将第一行更改为我的确切主路径,并收到相同的错误。

【问题讨论】:

    标签: mysql privileges mysql-error-1045


    【解决方案1】:

    你可能想GRANT你的用户FILE权限:

    FILE 权限允许您使用LOAD DATA INFILESELECT ... INTO OUTFILE 语句以及LOAD_FILE() 函数在服务器主机上读取和写入文件。

    拥有FILE 权限的用户可以读取服务器主机上的任何文件,该文件可以是世界可读的,也可以被 MySQL 服务器读取。 (这意味着用户可以读取任何数据库目录中的任何文件,因为服务器可以访问这些文件中的任何一个。)FILE 权限还允许用户在 MySQL 服务器具有写访问权限的任何目录中创建新文件。作为一项安全措施,服务器不会覆盖现有文件。

    要授予FILE 权限,请以root 身份登录并执行:

    GRANT FILE ON *.* TO 'your_user'@'localhost';
    

    【讨论】:

    • 我现在正在与我的主机的技术支持进行实时聊天。我把你的答案联系起来了。等待...
    • 显然 BlueHost 无法在共享服务器上授予此权限。供参考。但是,我将假设您是正确的并将此答案标记为已接受。是时候创建一个 php 导出了。
    • hookdonwinter:感谢您的接受。稍后我将对其进行测试,以确保当用户没有 FILE 权限时实际上返回错误 1045。
    • @hookedonwinter:刚刚试了一下,实际上没有FILE权限的用户会收到#1045错误。因此,如果主机允许,这将解决它。
    猜你喜欢
    • 2012-07-23
    • 1970-01-01
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    • 2019-06-18
    • 1970-01-01
    相关资源
    最近更新 更多