10

我无法在 postgres 中使用 rails。数据库不会创建:

sayth@sayth-TravelMate-5740G:~/testapp2$ rake db:create:all
PG::InsufficientPrivilege: ERROR:  permission denied to create database
: CREATE DATABASE "testapp2_development" ENCODING = 'unicode'
....
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"testapp2_production", "pool"=>5, "username"=>"testapp2", "password"=>nil}

所以我在这里关注解决方案https://stackoverflow.com/a/8639649

这些是我遇到问题的步骤。

$ psql -d postgres
postgres=# create role app_name login createdb;
postgres=# \q

但是,当我在 psql shell 中为 create 角色赋予 createdb 能力时,它会通过身份验证失败。

sayth@sayth-TravelMate-5740G:~/testapp2$ psql -d postgres
psql (9.2.4)
Type "help" for help.

postgres=> create role sayth createdb;
ERROR:  permission denied to create role
postgres=> 

那么如何创建身份验证?

编辑更新审查http://www.postgresql.org/docs/9.2/static/tutorial-createdb.htmlhttp://www.postgresql.org/docs/9.2/static/database-roles.html

但不能使用 root 来创建帐户,因为它不存在,我需要成为 root 才能创建它。

sayth@sayth-TravelMate-5740G:~$ sudo psql -d postgres
[sudo] password for sayth: 
Sorry, try again.
[sudo] password for sayth: 
psql: FATAL:  role "root" does not exist
4

3 回答 3

35

gitlab_ci在DB setup期间添加它。@Audrius Meškauskas我解决了on描述的问题Ubuntu 12.04

以管理员身份连接

sudo -u postgres psql -d template1

改变角色

ALTER ROLE gitlab_ci WITH CREATEDB;

重新运行任务

sudo -u gitlab_ci -H bundle exec rake db:setup RAILS_ENV=production
于 2014-04-09T14:16:24.273 回答
7

您使用的用户名/密码缺少创建用户和数据库所需的管理员权限。

以管理员身份登录并修复权限。如果您有管理员登录凭据,请登录并使用ALTER ROLE来修复该帐户的权限。

于 2013-08-17T13:49:51.677 回答
0

现在打开界面psql postgres并尝试创建用户。

于 2021-08-16T21:56:21.357 回答