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 /tmp 没有输出
如何使用 SELECT INTO OUTFILE 绕过 MySQL Errcode 13?
mysql之导入(LOAD DATA)导出(SELECT ...INTO OUTFILE)语法