【问题标题】:psql ERROR: could not open file "address.csv" for reading: No such file or directorypsql 错误:无法打开文件“address.csv”进行阅读:没有这样的文件或目录
【发布时间】:2014-04-26 11:54:13
【问题描述】:

Linux 新手。

我正在尝试将 .csv 复制到 PostgreSQL 数据库中,

copy address from 'address.csv' delimiter ',' csv header;

我有 cd 到文件的位置,在 psql 提示符下使用 \cd [directory] ​​命令。一个不成功的操作。

我已经关闭了那个终端窗口,并在另一个终端窗口中 cd 到数据文件夹,然后我从那里打开了 psql 命令。

\! pwd 显示存储文件的文件夹的名称/路径。 /home/tommy/virtualenv_folder/code_data/postgresql_csv_files

\! ls 显示文件名,即使使用通配符 \! add* 也会显示文件名。

stackoverflow.com/questions/16618299/postgres-copy-from-csv-file-no-such-file-or-directory 建议重置 search_path。在数据文件夹中肯定没有必要。还是这样?

无论如何,任何指针将不胜感激,请。

【问题讨论】:

  • 遇到了同样的问题。文件和权限是正确的。但是,我使用代理连接到目标服务器。确保该文件存在于您尝试执行此操作的目标服务器上。

标签: linux postgresql csv


【解决方案1】:

您应该在复制语句中使用实际路径,例如,

copy address from '/home/tommy/virtualenv_folder/code_data/postgresql_csv_files/address.csv'. 

还要确保 postgres 用户对该文件和目录具有读取权限或将所有权更改为 postgres,即 chown postgres:postgres address.csv。我倾向于创建一个目录并授予所有用户对它的读/写访问权限,因此我可以轻松地将数据加载到 postgres 中并再次将其转储出来,无论是作为我自己还是作为 postgres 用户,例如,

chmod a+rw /var/import/postgresfiles

search_path 与 postgres 在数据库中而不是在外部文件系统中搜索模式有关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2015-02-25
    • 2019-07-27
    相关资源
    最近更新 更多