我正在尝试将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。
答案 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/