问题
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?
回答1:
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
回答2:
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