默认情况下,OSX上的MySQL在哪里写出outfiles?

时间:2012-07-13 02:44:01

标签: mysql macos into-outfile

我正在尝试将MySQL select语句中的一些数据写入运行Snow Leopard的Mac上的文件中。

select date_base, fractile_v2, gics, count(gvkey_iid)
from master
where fractile_v2 <= 15 and
      fractile_v2  != 0
group by date_base, gics, fractile_v2
order by date_base, fractile_v2
limit 100000
INTO OUTFILE '/User/my-name/Desktop/gics_v2.csv'
FIELDS TERMINATED BY ',';

不幸的是,这会产生以下错误:

  

错误代码:1。无法创建/写入文件'/Users/andrew/Desktop/gics_v2.csv'(错误代码:13)

我假设是权限问题。

当我用简单'/User/my-name/Desktop/gics_v2.csv'替换完整文件路径gics_v2.csv时,语句似乎就会运行。但是我不知道文件保存在哪里,我找不到它。

有谁知道吗?任何人都可以建议我如何解决初始写入错误?我以root用户身份运行MySQL。

4 个答案:

答案 0 :(得分:4)

这是一个权限问题,因为您试图让mysql用户写入您的私人主目录。尝试写入您在/ usr / local /中创建的文件夹,只是为了安全起见,您可以将权限设置为全局读/写,因为它是您的Mac。

在Mac上打开终端:

  

cd / usr / local

     

mkdir DbOutput

     

sudo chmod -R 777 DbOutput

然后回到你的代码但改变路径:

  

选择date_base,fractile_v2,gics,count(gvkey_iid)

     

来自大师

     

其中fractile_v2&lt; = 15和

     

fractile_v2!= 0

     

按日期分组,gics,fractile_v2

     

按date_base排序,fractile_v2

     

限制100000

     

INTO OUTFILE'/usr/local/DbOutput/gics_v2.csv'

     

FIELDS TERMINATED BY',';

答案 1 :(得分:2)

默认情况下,SELECT ... INTO OUTFILE将文件放在数据文件所在的目录中。像/path/to/datadir/databasename/gics_v2.csv

这样的东西

它将文件写为服务器,而不是客户端。所以它不是使用你的用户权限,而是运行mysqld进程的用户(通常是osx上的_mysql。)

你只需要给它一个允许该用户写的路径。

答案 2 :(得分:1)

我知道这个问题已经过时了,但仅仅是因为在我的Mac OS X 10.10上, $(".rslides").responsiveSlides({ auto: true, pagination: false, nav: false, fade: 500 }); }); 目录是这样的:OUTPUT

答案 3 :(得分:0)

我正在运行Mac OS X Server 10.7.4,对我来说,OUTFILE目录是/var/mysql/databasename/