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

时间:2017-05-30 23:52:41

标签: macos postgresql file-permissions permission-denied pgadmin-4

我刚开始尝试学习sql。我是编程中的一个完整的菜鸟(就是你知道) 所以我的问题是我试图在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

我已经更改了此文件的权限,以便所有用户都可以读写,但我仍然收到错误消息。

请帮忙! (考虑到我是一个绝对的新手)

如果您需要更多信息来解决问题,我会尽力找到它!

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

我通过在PostgreSQL bin中创建一个名为Database的文件夹来解决此问题,在该文件夹中保存了所有要处理的数据文件。我在Mac和Windows上都使用pgAdmin4。在Windows上找到该垃圾箱相当简单,而在Mac上找到它有点棘手,因为存放垃圾箱的图书馆是隐藏的。如果使用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;

答案 2 :(得分:0)

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

在Mac上, 1.打开“系统偏好设置”

  1. 选择“安全和隐私”选项

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

  3. 授予对PgAdmin和postgres的访问权限