我一直在使用PostgreSQL几天,它一直工作正常。我一直在通过默认的postgres数据库用户以及另一个有权限的用户使用它。
今天中午(在一切工作正常之后)它停止工作,我再也无法回到数据库了。我会尝试:psql
,它会提出psql: FATAL: role "postgres" does not exist
。
同样,如果我尝试从其他用户psql -d postgres
尝试psql: FATAL: role "otheruser" does not exist
。 (请注意,我有一个名为postgres的数据库,它一直在运行。)
更新
似乎其中一台访问服务器的计算机崩溃,可能以某种方式删除了数据库的所有用户。我会尝试重新安装。
答案 0 :(得分:0)
角色postgres和其他用户可能会被删除。如果您至少有一个具有超级用户权限的用户,则可以再次创建这些角色。 类似问题提到here
答案 1 :(得分:0)
要检查用户是否存在而无法使用psql
登录,您可以使用以下方法:
pg_user
全局表示例:
$ sudo -i -u postgres ... postgres@u64:/usr/local/pg95a1$ bin/postgres --single -D $PWD/data PostgreSQL stand-alone backend 9.5alpha1 backend> select usename from pg_user; 1: usename (typeid = 19, len = 64, typmod = -1, byval = f) ---- 1: usename = "postgres" (typeid = 19, len = 64, typmod = -1, byval = f) ---- 1: usename = "daniel" (typeid = 19, len = 64, typmod = -1, byval = f) ---- 1: usename = "joe" (typeid = 19, len = 64, typmod = -1, byval = f) ---- 1: usename = "bob" (typeid = 19, len = 64, typmod = -1, byval = f) ----
ctrl D 以终止单用户会话。