mysql 5.6创建的outfile在哪里

时间:2014-03-26 20:35:50

标签: mysql

我阅读了很多帖子,并用不同的关键词进行了大量的谷歌搜索,以找到这个问题的答案。虽然有关该主题的帖子很多,但没有一个帖子给出了适用于我的机器的答案,所以我创建了一个新帖子。

我在没有连接到网络的Windows开发机器上安装了MySQL 5.6。我试图将表中的数据导出到outfile中,然后我可以将其用于其他目的。查询成功运行。事实上,当我尝试第二次运行相同的查询时,我收到一条消息,说outfile已经存在。但是当我按名称搜索文件或使用Windows资源管理器时,我找不到它。

使用MYSQL 5.6,WINDOWS 7中的文件是什么?

以下是创建outfile的代码:

SELECT * INTO OUTFILE 'table.csv'
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
FROM table  

2 个答案:

答案 0 :(得分:2)

使用以下语法: - 你告诉他把它放在哪里!

SELECT * INTO OUTFILE 'c:/table.csv'
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
FROM table

它通常存储在DATA_DIR参数位置。

答案 1 :(得分:1)

来自reference manual for the SELECT statement

  

SELECT ... INTO OUTFILELOAD DATA INFILE.

的补充

来自reference manual for the LOAD DATA INFILE

  

服务器使用以下规则来定位文件:

     
      
  • 如果文件名是绝对路径名,则服务器将其用作给定的。
  •   
  • 如果文件名是具有一个或多个主要组件的相对路径名,则服务器将搜索相对于服务器数据目录的文件。
  •   
  • 如果给出没有前导组件的文件名,则服务器在默认数据库的数据库目录中查找该文件。
  •   

所以我会查看默认的数据库目录。要找出它是什么:

show variables like 'datadir';

当然,您可以在select... into outfile...句中指定文件的位置。

此外,如果您在客户端安装了MySQL(或者您正在使用localhost),则可以在命令行中编写类似的内容:

mysql [connection parameters] -e"select ..." > yourFile.txt

这会将select语句的结果转储到当前目录中的yourFile.txt

希望这有帮助