Windows 7上不存在角色“ postgres”

时间:2019-07-14 20:13:13

标签: windows postgresql windows-7

pg_ctl initdbpg_ctl start命令之后运行以下命令时:

C:\Program Files\PostgreSQL\11\bin>psql.exe -U postgres -h localhost

我遇到以下错误:

role "postgres" doesn't exist

所有类似的问题都是关于Linux或Mac的,它们对我没有太大帮助,所以我不知道如何解决它。

1 个答案:

答案 0 :(得分:1)

由于您在运行-U时未使用initdb指定用户名,因此引导程序超级用户具有与您运行initdb的操作系统用户的名称。

因此您可以轻松地与

建立联系
psql

如果要将用户名更改为postgres,这很简单:

-- get the name of the current user in a variable
SELECT current_user \gset
CREATE ROLE dummy SUPERUSER;
-- connect as user "dummy"
\c - dummy
-- rename the bootstrap user to "postgres"
ALTER ROLE :"current_user" RENAME TO postgres;
-- remove "dummy"
\c - postgres
DROP ROLE dummy;
-- disconnect
\q