13

我被困住了。我基本上想使用 OUTFILE 命令从远程数据库创建一个本地数据文件(csv 文件)。

我基本上是在提取数据......并且想在我的本地文件服务器上创建它而不是在远程服务器上创建输出文件。我的远程空间有限,因此我想在本地创建文件。我在如何做到这一点上缺少什么?谢谢!

到目前为止,这是我在命令行上的工作语法(它正在创建我想要的文件,但在远程服务器上)

mysql -u test -pfoo --database test -h testdb201.name.host.com --port 3306 -ss -e "SELECT 'a','b','c' UNION SELECT col1, col2, col3 INTO OUTFILE '/tmp/mytest.csv' FIELDS TERMINATED BY ','  FROM tst_p000 limit 10"
4

1 回答 1

23

根据MySQL Select 语法,您不能使用 OUTFILE 输出到服务器本身之外的文件。

您需要像这样将查询的制表符分隔输出转换为 CSV 格式(此处记为 sed 命令)。

mysql -u test -pfoo --database test -h testdb201.name.host.com --port 3306 -ss -e "SELECT 'a','b','c' UNION SELECT col1, col2, col3 " | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > myDump.csv
于 2011-01-20T04:51:40.117 回答