MySQL-SELECT * INTO OUTFILE LOCAL? [英] MySQL - SELECT * INTO OUTFILE LOCAL ?
问题描述
MySQL很棒!我目前参与大型服务器迁移,以前,我们的小型数据库曾经托管在与客户端相同的服务器上.
所以我们以前经常这样做:SELECT * INTO OUTFILE .... LOAD DATA INFILE ....
MySQL is awesome! I am currently involved in a major server migration and previously, our small database used to be hosted on the same server as the client.
So we used to do this : SELECT * INTO OUTFILE .... LOAD DATA INFILE ....
现在,我们将数据库移至其他服务器,并且SELECT * INTO OUTFILE ....
不再起作用,可以理解-我认为是安全原因.
但是,有趣的是,可以将LOAD DATA INFILE ....
更改为LOAD DATA LOCAL INFILE ....
和bam,
Now, we moved the database to a different server and SELECT * INTO OUTFILE ....
no longer works, understandable - security reasons I believe.
But, interestingly LOAD DATA INFILE ....
can be changed to LOAD DATA LOCAL INFILE ....
and bam, it works.
我没有抱怨,也没有对MySQL表示厌恶.替代方法是添加两行额外的代码和一个系统调用以形成一个.sql脚本.我想知道的是为什么LOAD DATA LOCAL INFILE
可以工作,为什么没有SELECT INTO OUTFILE LOCAL
这样的东西?
I am not complaining nor am I expressing disgust towards MySQL. The alternative to that added 2 lines of extra code and a system call form a .sql script. All I wanted to know is why LOAD DATA LOCAL INFILE
works and why is there no such thing as SELECT INTO OUTFILE LOCAL
?
我做了作业,找不到上面问题的直接答案.我也找不到@ MySQL的功能请求.如果有人可以清除它,那就太好了!
I did my homework, couldn't find a direct answer to my questions above. I couldn't find a feature request @ MySQL either. If someone can clear that up, that had be awesome!
MariaDB是否可以处理此问题?
Is MariaDB capable of handling this problem?
推荐答案
从手册开始:The SELECT ... INTO OUTFILE
语句主要用于使您非常快速地将表转储到服务器计算机上的文本文件中.如果要在服务器主机以外的其他客户端主机上创建结果文件,则不能使用SELECT ... INTO OUTFILE
.在这种情况下,您应该使用mysql -e "SELECT ..." > file_name
之类的命令在客户端主机上生成文件."
From the manual: The SELECT ... INTO OUTFILE
statement is intended primarily to let you very quickly dump a table to a text file on the server machine. 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.0/en/select.html
一个例子:
mysql -h my.db.com -u usrname--password=pass db_name -e 'SELECT foo FROM bar' > /tmp/myfile.txt
这篇关于MySQL-SELECT * INTO OUTFILE LOCAL?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!