如何在Manjaro / Arch Linux上将CSV复制到pgadmin4中? (权限问题)

问题描述 投票:0回答:2

我正在运行Manjaro Linux,并试图学习如何使用PostgresSQL。我已经安装了Postgres according to the wiki,也通过pacman安装了pgAdmin4。我已经使用pgAdmin4 GUI设置了服务器和数据库,并开始进行基本的SQL查询。

我正在尝试导入csv,它位于磁盘上的/home/rob/Code/temp/birdsong.csv。在“查询工具”面板中,我使用[

创建了Birdsong表。
-- Drop table if exists
DROP TABLE IF EXISTS bird_song;

-- Create new table
CREATE TABLE birdsong (
    english_name VARCHAR,
    country VARCHAR,
    latitude DEC,
    longitude DEC
 );

 COPY birdsong (english_name, country, latitude, longitude)
 FROM '/home/rob/Code/temp/birdsong.csv' DELIMITER ',' CSV HEADER;

并且我收到错误ERROR: could not open file "/home/rob/Code/temp/birdsong.csv" for reading: Permission denied

我使用的是PostgresSQL 12.1和pgAdmin4 4.15。顺便说一句,当我启动pgAdmin4时,它抱怨最新的版本是4.17,但是我还没有弄清楚是否/如何升级它。

我如何安排正确的权限设置以将文件读入pgAdmin4?

sql linux postgresql pgadmin-4
2个回答
0
投票

您应该能够通过运行以下命令从pgadmin服务启用对该文件的读取访问权限:

chmod o+rx /home/rob
chmod o+xr /home/rob/Code
chmod o+xr /home/rob/Code/temp
chmod o+r /home/rob/Code/temp/birdsong.csv

不过请注意,这可能并非完全理想。另一种选择是将文件复制到共享位置并添加读取权限。说

cp /home/rob/Code/temp/birdsong.csv /tmp
chmod o+r /tmp/birdsong.csv

...然后更改您的SQL以从新位置复制。


0
投票

错误消息表明数据库无权访问文件/home/rob/Code/temp/birdsong.csv。您需要向数据库用户授予访问权限-通常称为postgres。检查如何在您的操作系统中执行此操作,例如在Linux中单击chown,然后尝试再次使用COPY。

chown

如果没有必要的权限向系统中的用户 COPY birdsong (english_name, country, latitude, longitude) FROM '/home/rob/Code/temp/birdsong.csv' DELIMITER ',' CSV HEADER; 授予访问权限,则可以通过postgres使用STDINCOPY工具:

psql

如果您计划使用psql将文件导入远程数据库,则此方法也很有用。

一点不相关的音符

[我注意到您正在将$ cat birdsong.csv | psql your_db -c "COPY birdsong (english_name, country, latitude, longitude) DELIMITER ',' CSV HEADER FROM STDIN;" COPY值导入到表中的单独列中,这对于导入数据来说是很好的。但是,如果您打算使用此数据执行空间运算,建议您将这些坐标存储在longitudelatitude列中。这是您可以执行的操作:

geometry

geography

..然后在SELECT AddGeometryColumn ('public','birdsong','geom',4326,'POINT',2); 栏中填入一个点

ALTER TABLE birdsong ADD COLUMN geom geometry(Point,4326);

数字4326代表SRS geom-最常用的SRS。

进一步阅读:

  • UPDATE birdsong SET geom = ST_SetSRID(ST_MakePoint(longitude,latitude),4326);

  • WGS84

  • ST_MakePoint

© www.soinside.com 2019 - 2024. All rights reserved.