Answers:
当数据库用户不存在时,将弹出此消息。在这里比较手册。无法解释
多个本地数据库 。角色在群集范围内有效。该手册再次:
请注意,角色是在数据库集群级别定义的,因此在集群中的所有数据库中均有效。
您必须以另一个database-cluster结尾。那将是在同一台计算机上运行的另一台服务器,侦听不同的端口。或者更有可能在另一台机器上。
消息是否可能实际上来自远程服务器?
docker rmi $(docker images -q) --force
。但问题出在volumes
我的猜测上
实际上,由于某种未知原因,我发现问题实际上是因为尚未创建postgresql角色。
尝试运行:
createuser -s -r postgres
请注意,角色是PostgreSQL 维护数据库权限的方式。如果postgres用户没有任何角色,则它将无法访问任何内容。createuser命令是CREATE USER,CREATE ROLE等命令的精简包装。
sudo su - postgres
在此命令对我有用之前,我不得不使用它。谢谢!
-r
选项不是必需的-s
。超级用户包括“创建角色”属性。
最近我在安装postgres之后立即得到了这个问题。如果安装后立即出现,则可能缺少默认用户postgres。在这种情况下,您可以使用以下命令创建默认用户postgres。
createuser -s -U $ USER
Ex: createuser -s -U $USER
enter your required role name: postgres
enter password for your the user:
它将提示您输入所需的数据库角色名称和密码。完成此过程后,可以使用以下命令登录到postgres控制台。
psql -U 'your_database_name'
例如:psql -U postgres
在这里,创建用户时,如果输入密码,则需要输入密码。
希望能帮助到你 :)
我使用的是OSX 10.8,尝试执行的所有操作都会给我FATAL: role "USER" does not exist
。就像很多人在这里说的,运行createuser -s USER
,但这给了我同样的错误。这终于对我有用:
$ sudo su
# su postgres
# createuser -s --username=postgres MYUSERNAME
的createuser -s --username=postgres
创建通过连接成postgres(--username = postgres的标志)超级用户(-s标志)。
我看到您的问题已得到回答,但是我想为使用OSX并尝试安装PostgreSQL 9.2.4的人添加此答案。
sudo su postgres
。
在Heroku文档中;开始说丝毫轨道4,他们说:
如果有,您还需要删除database.yml中的用户名字段:在文件config / database.yml中,删除:用户名:myapp
然后,如果不pg告诉角色为“ myapp”的数据库,则只需删除“ development:”中的该行即可。
此行告诉Rails数据库myapp_development应该在myapp的角色下运行。由于您可能在数据库中没有此角色,因此我们将其删除。在删除行中,Rails将尝试以当前登录到计算机的用户身份访问数据库。
还记得创建数据库进行开发:
$createdb myapp_development
为您的应用名称补充“ myapp”
您可以有多个本地数据库吗?检查您的database.yml
并确保您要击中所需的pg db。使用rails console
确认。
安装过程将创建一个postgres
与默认Postgres角色关联的用户帐户。为了使用Postgres,您可以登录该帐户。但是,如果未明确指定,rails应用程序将查找其他角色,尤其是具有您的unix用户名的角色,而该角色可能不会在postgres角色中创建。
为了克服这个问题,您可以创建一个新角色,首先切换到安装过程中创建的默认角色postgres
sudo -i -u postgres
登录到postgres帐户后,可以通过以下命令创建新用户:
createuser --interactive
这将提示您一些选择,并根据您的响应,执行正确的Postgres命令以创建用户。
传递角色名称和一些权限,然后创建角色,然后可以迁移数据库
在尝试遵循Ryan Bate的有关使用橡胶部署到AWS EC2的教程之后,我到这里结束了。这是发生在我身上的事情:我们使用“
rails new blog -d postgresql
显然,这创建了一个以pg为数据库的新应用程序,但尚未创建数据库。使用sqlite,您只需要运行rake db:migrate,但是使用pg时,首先需要创建pg数据库。Ryan没有执行此步骤。命令是rake db:create:all
,然后我们可以运行rake db:migrate
第二部分是更改database.yml文件。生成文件时,用户名的默认值为“ appname”。但是,您在Postgresql管理员中所扮演的角色是不同的(至少对我来说是这样)。我将其更改为我的名字(请参见上面有关创建角色名称的建议),我很高兴。
希望这可以帮助。
经过一堆Postgres的安装和卸载后,这对我来说似乎可以与Os X Mavericks,Rails 4和Ruby 2保持一致。
在database.yml文件中,我将默认用户名更改为计算机的用户名,对我而言,该用户名仅为“ admin”。
在命令行中,我运行rake db:create:all
然后我运行rake db:migrate
当我运行Rails服务器并检查本地主机时,它会显示“ Welcome onboard”。
postgres
尚未创建,这可能会导致同样的错误信息,请参阅此相关的问题:stackoverflow.com/questions/11919391/...