Outfile 本地路径规范

Posted

技术标签:

【中文标题】Outfile 本地路径规范【英文标题】:Outfile local path specification 【发布时间】:2011-04-14 22:10:29 【问题描述】:

我如何精确到我的本地机器?

选择 * 到 outfile 'C:\Info\table1.txt' table1 中以 ',' 结尾的字段;

此查询在服务器上的 info 文件夹下创建为 table1.txt,我如何在此处指定我的本地机器路径?

谢谢。

【问题讨论】:

您没有提供有关“本地计算机”是什么以及您如何访问服务器的任何信息。 @Pekka - 请看下面,我已经突出显示。 【参考方案1】:

你不能直接这样做。 OUTFILE 语法仅适用于服务器本身。但是,您可以这样做:

c:\> mysql -u username -h nameofserver -p -e "SELECT ... FROM database.table WHERE ..." > c:\info\table1.txt

如果您已将 MySQL 配置为允许从您的计算机进行远程连接。

【讨论】:

@Marc - 非常感谢,我需要在命令提示符下运行它吗?或者我可以直接在服务器的查询浏览器上运行它吗? @Sharpeye 您需要提供有关服务器设置外观的更多信息。我们仍然不知道您通过什么样的连接访问服务器。 你必须从你的本地机器上运行它,告诉 mysql 监视器连接到你的 MySQL 服务器,这意味着 MySQL 必须允许 TCP 连接和一个帐户供你通过 TCP 访问。 Pekka 的解决方案可能会更好 - 使用 SELECT ... OUTFILE 在服务器上生成文件,然后您可以通过其他方式传输。 @Marc - 我在 mysql 客户端命令提示符下运行它,我收到输出禁用错误,有什么想法吗? 对您尝试将输出重定向到的目录或文件没有写权限?是 Windows 错误,还是来自 mysql 监视器?【参考方案2】:

此查询在服务器上的 info 文件夹下创建为 table1.txt,我如何在此处指定我的本地机器路径?

如果您使用 SSH 访问远程计算机,则不能,至少不能直接访问。据我所知,无法通过管道传输 INTO OUTFILE 操作的结果。

解决方法建议:

在本地计算机上创建服务器可访问的网络共享(如果可能)

在服务器上创建一个网络共享(或 FTP 帐户...或 WebDAV 帐户...),将转储存储在那里并从那里获取它

【讨论】:

谢谢,但是我没有权限访问服务器文件夹,我们还有什么办法吗? 数据库位于远程服务器中,可以使用 todd 访问,我正在尝试运行查询以导出到本地计算机的路径 (c:\somefolder\filename.txt)。跨度> @Sharpeye 我不知道 todd 是什么。***也没有:en.wikipedia.org/wiki/Todd

以上是关于Outfile 本地路径规范的主要内容,如果未能解决你的问题,请参考以下文章

select into outfile写文件时路径包含中文解决办法

用于导出的 INTO OUTFILE 查询在本地驱动器上不起作用

mysql load_file()和 into outfile

select into outfile

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

如何使用 SELECT INTO OUTFILE 写入 /tmp 以外的目录?