【问题标题】:Exporting mysql data to csv file in the home directory ubuntu将mysql数据导出到主目录ubuntu中的csv文件
【发布时间】:2014-08-11 08:59:41
【问题描述】:

我在 mysql 中有一个表,现在我正在尝试将整个数据导出到一个 csv 文件中。根据文档,一种可能的方法是使用查询:

SELECT id, name, email INTO OUTFILE '/tmp/result.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY ‘\\’
LINES TERMINATED BY '\n'
FROM users WHERE 1

这工作得很好,但它会在我的文件系统的tmp 目录中创建文件。我希望该文件位于我的 Eclipse 工作区的项目目录中(我正在使用 java)。

接下来,我尝试将此文件复制到我的目的地(使用 apache commons io),然后删除该文件。但我无法删除文件(“java.io.IOException:无法删除文件:”,我假设这是因为我没有 tmp 目录的 root 访问权限)。

有没有其他优雅的方法来做我想做的事……还是我必须使用像 apache POI 这样的库?

【问题讨论】:

  • 尝试以 sudo 运行程序,或更改您的输出文件路径
  • @gtgaxiola 更改 outfilepath 不起作用,因为“INTO OUTFILE”仅在托管我的 mysql 服务器的位置创建文件。无论如何,我正在寻找更优雅的解决方案(对不起,但我不想使用 sudo)
  • 你有 mysql 服务器的管理员权限吗?您可以为您的程序创建一个具有适当 chmod 权限的目录吗?然后你可以改变outfile路径
  • @gtgaxiola 我的 mysql 服务器有一个单独的用户名和密码,如果我以 root 身份登录,我可以在 chmod 中创建一个目录,如果这就是你的意思
  • 在您的 Mysql 服务器中,如果有一种方法可以创建一个目录来放置具有更宽松 chmod 权限的 csv 文件(例如允许从特定用户/组中删除),那么您可以更改您的MySQL 脚本指向该目录而不是 /tmp/

标签: java mysql excel csv ubuntu


【解决方案1】:

来自以下link 的解决方案对我有用。

使用命令行>mysql -e "SELECT * FROM foo ORDER BY bar" > '/path/to/file'

【讨论】:

    猜你喜欢
    • 2014-10-20
    • 2015-11-12
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多