MySQL SELECT INTO OUTFILE 到不同的服务器?

Posted

技术标签:

【中文标题】MySQL SELECT INTO OUTFILE 到不同的服务器?【英文标题】:MySQL SELECT INTO OUTFILE to a different server? 【发布时间】:2011-02-17 18:15:01 【问题描述】:

我在服务器 a 上有一个 shell 脚本。该脚本将一个 csv 文件输出到本地目录。问题是数据库服务器在服务器 b 上。如何在这样的设置中使用 select * into outfile

我明白了

Can't create/write to file '/home/username/test.csv/' (Errcode: 2)

通过使用'LOCAL'关键字解决了加载数据文件。 outfile 有类似的东西吗?

【问题讨论】:

【参考方案1】:

select into outfile只能在服务端创建文件,不能在客户端创建。

以下是手册针对您的情况推荐的内容:

如果你想创建结果 某些客户端主机上的文件,而不是 服务器主机,您不能使用 SELECT ...进入档案。在这种情况下,你 应该改为使用命令,例如 mysql -e "SELECT ..." > 文件名到 在客户端主机上生成文件。

http://dev.mysql.com/doc/refman/5.1/en/select.html

【讨论】:

他们是否会像在下一个版本中使用 infile 一样将 LOCAL 关键字实现到 outfile 中?这个简单的问题导致了大量的额外工作。谢谢! 我对此表示怀疑。您是否尝试过使用mysql -e 并将输出重定向到本地文件的推荐方法? 因为它是作为文本转储的,并且没有办法将它转储为 csv 文件,所以我不得不完全忽略这种方法。 MySQL 让执行如此简单的任务变得非常困难 :( 再次感谢! 好吧,您可以使用mysql -B -e 将结果转储到本地制表符分隔的文件中,然后将其转换为 CSV。以下是一些关于进行转换的提示:***.com/questions/2535255/…【参考方案2】:

使用下面的命令:

mysql -uusername -ppassword -h DBIP DBNAME -e \
"SELECT * FROM tablename" > /destinationpath/outputfilename.csv

【讨论】:

不工作....

以上是关于MySQL SELECT INTO OUTFILE 到不同的服务器?的主要内容,如果未能解决你的问题,请参考以下文章

Mysql 使用 select into outfile

MySQL select into outfile /tmp 没有输出

如何使用 SELECT INTO OUTFILE 绕过 MySQL Errcode 13?

mysql之导入(LOAD DATA)导出(SELECT ...INTO OUTFILE)语法

mysql之导入(LOAD DATA)导出(SELECT ...INTO OUTFILE)语法

MySQL SELECT INTO OUTFILE 到不同的服务器?