2

我正在尝试在 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

我已更改此文件的权限以供所有用户读取和写入,但我仍然收到错误消息。

4

3 回答 3

3

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

在 Mac 上-

  1. 打开“系统偏好设置”

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

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

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

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

于 2019-11-13T20:14:06.180 回答
2

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

于 2017-05-31T02:00:15.043 回答
2

我通过在 PostgreSQL bin 中创建一个名为 Database 的文件夹解决了这个问题,我在其中保存了我想要处理的所有数据文件。我在 Mac 和 Windows 上都使用 pgAdmin4。虽然在 Windows 上查找 bin 相当简单,但在 Mac 上查找它有点棘手,因为保存 bin 的库是隐藏的。C:\ProgramFiles\PostgreSQL\10\bin\Database如果您使用的是 Windows 和/Library/PostgreSQL/10/bin/Database/Mac ,请尝试保存文件。可以通过按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;
于 2018-09-16T02:33:59.650 回答