我正在设置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。 根帐户仍然存在类似的错误。
当前回答
sudo su - postgres
psql template1
在PGSQL上创建具有“超级用户”权限的角色
CREATE ROLE username superuser;
eg. CREATE ROLE demo superuser;
然后创建用户
CREATE USER username;
eg. CREATE USER demo;
为用户分配权限
GRANT ROOT TO username;
然后启用该用户登录,这样你就可以从普通的$ terminal运行:psql template1:
ALTER ROLE username WITH LOGIN;
其他回答
我把它安装在macOS上,必须:
cd /Applications/Postgres.app/Contents/Versions/9.5/bin
createuser -U postgres -s YOURUSERNAME
createdb YOURUSERNAME
来源如下:https://github.com/PostgresApp/PostgresApp/issues/313#issuecomment-192461641
在尝试了许多其他人的解决方案后,都没有成功,这个答案最终帮助了我。
https://stackoverflow.com/a/16974197/2433309
简而言之,跑步
sudo -u postgres createuser owning_user
创建名为owning_user(在本例中为h9uest)的角色。在此之后,您可以在终端上运行rake db:create,使用您设置的任何帐户名,而无需进入Postgres环境。
对于使用docker并正确遵循官方文档说明的用户,如果仍然遇到此问题,请重新启动窗口并重试。
Windows用户:psql -U postgres
然后你应该看到PostgreSQL的命令行界面:postgres=#
这对我来说很管用:
psql -h localhost -U postgres