我在Windows中设置了PostgreSQL 9.1。
我无法对PostgreSQL做任何事情:无法创建b,无法创建用户;所有操作都返回错误消息
致命:角色根不存在
root是我在安装Postgresql
但我可以使用以下方式连接:
username : postgres
如何使用角色root
连接到postgres?
使用su命令here为linux平台提到了一个解决方案但是无法找到windows7的解决方案
先谢谢
答案 0 :(得分:32)
如果您想使用用户名root
登录Postgres,则需要先创建此类用户。
首先需要以Postgres超级用户身份登录。这通常为postgres
(并在安装期间指定):
psql -U postgres ....
然后你可以创建角色和数据库:
psql (9.4.0)
Type "help" for help.
postgres=# create user root with password 'verysecret';
CREATE ROLE
postgres=# \q
c:\
c:\>psql -U root postgres
psql (9.4.0)
Type "help" for help.
postgres=>
以超级用户身份登录,您还可以向root
用户授予必要的权限。
psql
are documented in the manual的所有参数。
手册中还记录了创建用户和数据库:
答案 1 :(得分:0)
在某些情况下,当您安装postgres时,不会创建初始数据库。
您需要execute initdb。
答案 2 :(得分:0)
在postgres docker容器上还原数据库/表时出现了相同的问题。
。当您从Docker容器内部连接到Postgres DB(psql shell)时,默认用户将是“ root”(除非您指定psql -U "some-user-name"
)
[Manjunath-MacBook-Air:$ sudo docker exec -it a2ff6075344e bash
bash-5.0# psql -U postgres postgres < testdb_pg_dump
因此,通过使用适当的用户名登录psql shell,可以解决问题
在这里-U postgres
指定连接到数据库的用户是“ postgres”