【问题标题】:Dumping a database table to text file将数据库表转储到文本文件
【发布时间】:2013-02-08 00:53:54
【问题描述】:

我正在尝试通过运行以下查询将 MySQL 数据库中的表转储到文本文件中

 SELECT fields FROM text_file_table INTO OUTFILE 'C:\\Program Files\\textfile.text'

但它给了我错误 无法创建/写入文件“C:\Program Files\textfile.text”

我认为这是由于安全问题,它不允许 DBMS 将文件写入该目录。如果还有其他问题,请告诉我,并帮助我找到问题的解决方案。我正在 Windows Server 2008 上执行此操作。谢谢!

【问题讨论】:

  • 如果你这样做INTO OUTFILE %temp%\\textfile.text` 会起作用吗?在 Win 上,%temp% 是一个环境变量,它告诉临时文件目录的位置。你是对的,MySQL 可能会拒绝让用户在 Program Files 中乱写东西。我希望如此。

标签: mysql windows-server-2008


【解决方案1】:

可能有两个问题。该命令在操作系统中作为“mysql”运行,因此“mysql”用户可能没有写入 c:\Program Files 的权限。它不应该,所以这很好。如果您将目标路径更改为可以写入的位置,这个问题就会消失。

另一个问题是您在 mysql 中登录的用户可能没有读取和写入文件的权限 - 请参阅http://dev.mysql.com/doc/refman/5.1/en/privileges-provided.html#priv_file。如果这是问题所在,您必须将权限 GRANT 授予您的用户。

【讨论】:

    【解决方案2】:

    我认为问题在于路径。如果您使用的是 Windows

    查询中的文件路径应该是这样的

    'C:/Program Files/textfile.txt'
    

    或者试试这个,我不确定

    'C:\Program Files\textfile.txt'
    

    在文件名的文本中也使用 txt => textfile.text

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-12
      • 2019-08-13
      相关资源
      最近更新 更多