MySQL很棒!我目前参与大型服务器迁移,以前,我们的小型数据库曾经托管在与客户端相同的服务器上。 所以我们曾经这样做:SELECT * INTO OUTFILE .... LOAD DATA INFILE ....
SELECT * INTO OUTFILE .... LOAD DATA INFILE ....
现在,我们将数据库移至另一台服务器,并且SELECT * INTO OUTFILE ....不再工作,这是可以理解的- 我认为是安全原因。但是,有趣的LOAD DATA INFILE ....是,可以将其更改为LOAD DATA LOCAL INFILE ....bam,并且可以使用。
SELECT * INTO OUTFILE ....
LOAD DATA INFILE ....
LOAD DATA LOCAL INFILE ....
我没有抱怨,也没有对MySQL表示厌恶。替代方法是添加两行额外的代码和一个系统调用以形成一个.sql脚本。我只想知道为什么会LOAD DATA LOCAL INFILE起作用,为什么没有这样的东西SELECT INTO OUTFILE LOCAL?
LOAD DATA LOCAL INFILE
SELECT INTO OUTFILE LOCAL
我做了作业,找不到上面问题的直接答案。我也找不到@ MySQL的功能请求。如果有人可以清除它,那就太好了!
MariaDB是否可以处理此问题?
在手册中:The SELECT ... INTO OUTFILE语句主要用于使您非常快速地将表转储到服务器计算机上的文本文件中。如果要在服务器主机以外的其他客户端主机上创建结果文件,则不能使用SELECT ... INTO OUTFILE。在这种情况下,您应该改用命令,例如mysql -e "SELECT ..." > file_name在客户端主机上生成文件。”
The SELECT ... INTO OUTFILE
SELECT ... INTO OUTFILE
mysql -e "SELECT ..." > file_name
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