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.
Use the command below:
mysql -uusername -ppassword -h DBIP DBNAME -e \
"SELECT * FROM tablename" > /destinationpath/outputfilename.csv
来源:https://stackoverflow.com/questions/2804332/mysql-select-into-outfile-to-a-different-server