错误:无法打开文件进行阅读:权限被拒绝。 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)