I have a shell script on server a. The script spits out a csv file to a local directory. The problem is the database server is on server b. How do I use select * into outfile in a setup like this?
I get
Can't create/write to file '/home/username/test.csv/' (Errcode: 2)
Solved load data infile by using 'LOCAL' keyword. Is there something like that for outfile?
select into outfile
can only create the file on the server, not the client.
Here's what the manual recommends for your situation:
If you want to create the resulting
file on some client host other than
the server host, you cannot use SELECT
... INTO OUTFILE. In that case, you
should instead use a command such as
mysql -e "SELECT ..." > file_name to
generate the file on the client host.
http://dev.mysql.com/doc/refman/5.1/en/select.html
Use the command below:
mysql -uusername -ppassword -h DBIP DBNAME -e \
"SELECT * FROM tablename" > /destinationpath/outputfilename.csv