【发布时间】:2015-08-02 06:02:13
【问题描述】:
我在尝试使用SELECT INTO OUTFILE 和使用/tmp 以外的目录时遇到问题。
我的 Linux 用户名为 datam,我的 MySQL 用户名为 lea,MySQL 以 mysql 运行。
当datam 运行mysql -u lea database 并尝试使用/home/datam/xfers/online/file.csv 的路径执行SELECT INTO OUTFILE 时,我收到错误代码13,权限被拒绝。使用 /tmp/file.csv 有效,所以我相当有信心这不是 MySQL 中的权限问题。
我已将mysql 添加到datam 组,并通过以下方式验证了这一点:
~$ sudo id mysql
uid=106(mysql) gid=114(mysql) groups=114(mysql),1001(datam)
我将 /home/datam/ 递归设置为 775。
如果我执行sudo -u mysql /bin/bash 并转到/home/datam/xfers/online/ 并执行touch file 它会写入一个文件。
我需要做什么才能让mysql 从SELECT INTO OUTFILE 写入文件?
我相信这不是围绕这个主题的其他问题的重复,因为我已经查看了它们并遵循了他们的所有说明(在所有目录上设置执行,直到我想要的目录,设置 GRANT FILE ON 等)。
MySQL 用户lea 授予:
+-----------------------------------------------------------------------------------------------------------+
| Grants for lea@localhost |
+-----------------------------------------------------------------------------------------------------------+
| GRANT FILE ON *.* TO 'lea'@'localhost' IDENTIFIED BY PASSWORD '*9BB439A3A652A9DAD3718215F77A7AA06108A267' |
| GRANT ALL PRIVILEGES ON `database`.* TO 'lea'@'localhost' |
+-----------------------------------------------------------------------------------------------------------+
【问题讨论】:
-
按照dba.stackexchange.com/a/245383/18098 和stackoverflow.com/a/16990452/470749 的建议,我终于让 MySQL 导出到一个文件
标签: mysql linux permissions