I'm trying to write some data from a MySQL select statement to a file on a Mac running Snow Leopard.
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 ',';
Unfortunately this generates the following error:
Error Code: 1. Can't create/write to file '/Users/andrew/Desktop/gics_v2.csv' (Errcode: 13)
which I'm assuming is a permissions issue.
When I replace the full file path '/User/my-name/Desktop/gics_v2.csv'
with simply gics_v2.csv
the statements seems to run. However I have no idea where the file is saved and I can't find it.
Does anyone know? And can anyone also suggest how I can solve the initial write error? I'm running MySQL as the root user.
This is a permissions issue because you're trying to get the mysql user to write to your private home directory. Try writing to a folder you create in /usr/local/ instead and just to be safe, you can make permissions global read/write since it's your Mac.
Open Terminal on your Mac:
cd /usr/local
mkdir DbOutput
sudo chmod -R 777 DbOutput
Then back to your code but change path:
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 '/usr/local/DbOutput/gics_v2.csv'
FIELDS TERMINATED BY ',';