SELECT INTO OUTFILE无法写入文件

我试图做一个SELECT INTO OUTFILE ,我得到以下错误:

 General error: 1 Can't create/write to file '/home/jason/projects/mcif/web/downloads/dump.csv' (Errcode: 13). Failing Query: " SELECT name INTO OUTFILE '/home/jason/projects/mcif/web/downloads/dump.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' FROM account a 

我知道问题可能是什么:我的downloads文件夹不能由我的MySQL用户写入。 我不知道如何解决这个问题有两个原因:

  • 我不知道如何找出MySQL用户是什么
  • 我不知道如何将MySQL用户添加到能够写入downloads文件夹的用户

我在Ubuntu Linux上。 有人能帮我克服这两件事吗?

Solutions Collecting From Web of "SELECT INTO OUTFILE无法写入文件"

写文件/tmp/dump.csv并复制它。这将让你看到谁在运行什么。 我的猜测是,你正在做这个从网络和客户端运行的Web服务器进程…

mysql -u USERNAME –password = PASSWORD –database = DATABASE –execute ='SELECT FIELDFIELD FROM TABLE LIMIT 0,10000'-X> file.xml

这里有一个讨论,可能会有所帮助: 我如何让MySQL写出outfiles作为一个不同的用户?

另外,请尽量避免绒毛问题。 在你的情况,你已经知道这是一个权限问题,所以你所有的SQL连接和表都不重要。 您可以简单地使用您选择的一个表格中的一个字段来展示问题,而不会混淆视图。

客户端可能会是mysqld 。 你必须改变apparmor授权,它会正常工作。 看看这个答案