Postgres Osm2pgsql错误:角色不存在。

4
我一直在设置 osm2pgsql 将 .osm 文件转换为可用于 Postgres 的数据。现在我尝试了下面的命令:
osm2pgsql --merc -d sa sa.osm
但是,我遇到了以下错误: “无法连接到数据库:FATAL: 角色"myUsername"不存在”。
我已经查阅了类似 Postgres 错误的资料,并创建了一个新的角色,但错误仍然存在。
有什么建议吗?
2个回答

10

您没有指定-U|--username开关,因此osm2pgsql会从终端获取当前用户名(除非您设置了PGUSER环境变量)。错误消息非常清晰,告诉您在您的数据库集群中不存在名为myUsername的角色。请注意:

CREATE ROLE myUsername LOGIN;    -- creating role myusername
CREATE ROLE "myUsername" LOGIN;  -- creating role myUsername

会产生两个不同的角色:

SELECT rolname FROM pg_roles;
  rolname   
------------
 postgres
 myUsername
 myusername
(3 rows)

1
我知道这是一个老问题,但在OSM中有些事情已经改变了,而且这个答案似乎出现在谷歌搜索的顶部。
使用这个:
/usr/bin/install-postgis-osm-user.sh the-database-here your-username-here

例如。
/usr/bin/install-postgis-osm-user.sh gis barrythefish

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接