错误:无法打开文件进行阅读:权限被拒绝。 SQL 状态:42501

Posted

技术标签:

【中文标题】错误:无法打开文件进行阅读:权限被拒绝。 SQL 状态:42501【英文标题】:ERROR: could not open file for reading: Permission denied. SQL state: 42501 【发布时间】:2017-10-31 14:25:36 【问题描述】:

我正在尝试在 pgAdmin4 1.5 的 SQL 表中复制现有的 CSV 文件。

我正在运行以下查询以从 CSV 文件中复制数据:

COPY console_games FROM '/users/user1/Desktop/ConsoleGames.csv' DELIMITER ',' CSV HEADER;

我得到了这个结果:

********** Error **********

ERROR: could not open file "/Users/user1/Desktop/ConsoleGames.csv" for reading: Permission denied
SQL state: 42501

我已更改此文件的所有用户的读写权限,但我仍然收到错误。

【问题讨论】:

1.尝试设置包含文件夹的读取权限 2. 您没有提到您的 postgres 服务器是否与文件位于同一主机上 非常感谢尤金!!! 1.解决了我的问题 我进入了每个包含文件夹获取信息,在共享和权限选项卡中添加了 posgres 并赋予它只读权限。再次感谢!! 【参考方案1】:

我遇到了同样的问题,这是我的解决方法

在 Mac 上-

    打开“系统偏好设置”

    选择“安全和隐私”选项

    从列表中选择“全盘访问”

    授予对 PgAdmin 和 postgres 的访问权限

然后,关闭并重新打开您的 pgadmin

【讨论】:

如何在 Windows 10 中进行设置?【参考方案2】:

使用 PgAdmin4 的批量加载功能导入 CSV。这将在幕后执行COPY ... FROM STDIN。 PgAdmin4 将使用您用户的权限访问该文件,而不是像来自文件的直接COPY 那样的 postgres 服务器的权限。

【讨论】:

非常感谢克雷格!在每个包含文件夹的共享和权限中添加 postgres 并赋予它只读权限为我解决了这个问题。 pgAdmin 中的批量加载功能似乎非常有用,请您扩展一下吗? @KostasDaglis 我不使用 PgAdmin,所以我无能为力。说明书可以吗?我知道 PgAdmin3 具有导入/导出功能,但 PgAdmin4 是重写的 - 我不确定它是否有,或者在哪里。【参考方案3】:

我通过在 PostgreSQL bin 中创建一个名为 Database 的文件夹解决了这个问题,我在其中保存了我想要处理的所有数据文件。我在 Mac 和 Windows 上都使用 pgAdmin4。虽然在 Windows 上找到 bin 相当简单,但在 Mac 上找到它有点棘手,因为保存 bin 的库是隐藏的。如果您使用的是 Windows,请尝试将文件保存到 C:\ProgramFiles\PostgreSQL\10\bin\Database,如果您使用的是 Mac,请尝试将文件保存到 /Library/PostgreSQL/10/bin/Database/。按command+shift+g 并在转到文件夹中键入~/Library 可以找到库。您的 Mac 将需要您的密码才能在资料库中进行更改。在此处保存数据文件后,您在 pgAdmin4 上的代码应如下所示:

COPY console_games FROM 'C:\ProgramFiles\PostgreSQL\10\bin\Database\ConsoleGames.csv' DELIMITER ',' CSV HEADER;

COPY console_games FROM '/Library/PostgreSQL/10/bin/Database/ConsoleGames.csv' DELIMITER ',' CSV HEADER;

【讨论】:

对我来说很棒!谢谢

以上是关于错误:无法打开文件进行阅读:权限被拒绝。 SQL 状态:42501的主要内容,如果未能解决你的问题,请参考以下文章

无法打开流或文件:无法打开流:权限被拒绝[重复]

无法打开输出文件,权限被拒绝

如何修复错误:无法打开 laravel.log 权限被拒绝?

权限被拒绝:httpd:无法打开错误日志文件 /etc/httpd/logs/error_log

信息:无法打开物理文件“路径”。操作错误5:“5(拒绝访问。)”(MICROSOFT SQL Server,错误:5120)

SQL Server附加数据库失败:无法打开物理文件,操作系统错误5:拒绝访问”解决方法