我正在设置PostgreSQL 9.1。我不能用PostgreSQL做任何事情:不能createdb,不能createuser;所有操作都返回错误消息
Fatal: role h9uest does not exist
h9uest是我的帐户名,我在这个帐户下执行apt-get安装PostgreSQL 9.1。 根帐户仍然存在类似的错误。
我正在设置PostgreSQL 9.1。我不能用PostgreSQL做任何事情:不能createdb,不能createuser;所有操作都返回错误消息
Fatal: role h9uest does not exist
h9uest是我的帐户名,我在这个帐户下执行apt-get安装PostgreSQL 9.1。 根帐户仍然存在类似的错误。
当前回答
这对我来说很管用:
psql -h localhost -U postgres
其他回答
在尝试了许多其他人的解决方案后,都没有成功,这个答案最终帮助了我。
https://stackoverflow.com/a/16974197/2433309
简而言之,跑步
sudo -u postgres createuser owning_user
创建名为owning_user(在本例中为h9uest)的角色。在此之后,您可以在终端上运行rake db:create,使用您设置的任何帐户名,而无需进入Postgres环境。
psql postgres
postgres=# CREATE ROLE username superuser;
postgres=# ALTER ROLE username WITH LOGIN;
在本地用户提示符,而不是根用户提示符中键入
sudo -u postgres createuser <local username>
输入本地用户密码。
然后输入前面的命令,生成“角色‘username’不存在”。
以上步骤为我解决了问题。 如果没有,请发送终端消息进行以上步骤。
我用docker-compose做了健康检查。
healthcheck:
test: ['CMD-SHELL', 'pg_isready']
interval: 5s
timeout: 5s
retries: 5
如果你也有这样的更改用户:
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U postgres'] # <<<---
interval: 5s
timeout: 5s
retries: 5
使用apt-get安装postgres不会创建用户角色或数据库。
创建超级用户角色和个人用户帐户数据库:
Sudo -u postgres createuser -s $(whoami);createdb whoami(美元)