把 development 和 test 的数据库都从 SQLite3 换回 PostgreSQL, gem 安装好之后
rake db:create
一直提示出错:
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"r_development", "pool"=>5}
PG::InsufficientPrivilege: ERROR: permission denied to create database
哎呀呀,google 不到答案,有人可以帮我一下吗?
sudo su - postgres
dropuser yby
createuser -s yby
把自己变成 superuser,但当时忘了设置密码,会提示“FATAL: password authentication failed for user "yby"”
sudo -u postgres psql
postgres=# \password $USER
这句用来修改密码,然后 OK。
如果是刚装完 PG,其实只需要:
sudo su - postgres
createuser -P -s yby
因为刚装完 PostgreSQL,默认的 superuser 是 postgres,用这个用户名登录,然后创建一个带密码的跟本机名同名的 superuser,一切就会非常简单。 “createuser -P -s -e”中的 -P 是用来设置密码, -s 用来设置 superuser,yby 是你的用户名。
另,谢谢各位热心帮助!
@chairy11 'PG::InsufficientPrivilege: ERROR: permission denied to create database' -> google.com 结果很多
google.com stackoverflow.com 基本上可以解决大部分问题
#8 楼 @messiahxu 话说,你这句是在什么语境下啊?
yby@yby:~/YBY/rc$ sudo su - postgres
postgres@yby:~$ create role yby with createdb login password 'xxxxxx'
No command 'create' found, did you mean:
Command 'pcreate' from package 'python-pyramid' (universe)
Command 'pcreate' from package 'pbuilder-scripts' (universe)
create: command not found
我用 pgAdmin 好像是创建了个用户来着, 反正现在左边如图:
楼主,如果要想彻底整明白的话
http://www.postgresql.org/docs/manuals/
挑你对应的版本,把第一章 Tutorial 和第三章 Server Administration 仔细看一遍。
其实大家的意思就是 RTFM ... 没什么捷径可走。
把你当前登录的用户,作为 pg 的操作用户,把这个用户给予权限。 具体参照这里,非常简洁实用的文档,来自 openerp,https://doc.openerp.com/install/linux/postgres/ 我就是按照它配置的。 更全的在 http://www.postgresql.org/files/documentation/pdf/9.2/postgresql-9.2-US.pdf
注意下,
createuser openerp
改成你当前的用户,常用的命令是
psql dbname createdb xxx dropdb xxx psql xxx < xxx.sql pg_dump xxx > xxx.sql
这些都没问题了,再用 rails
还得夸一下 https://doc.openerp.com/install/linux/postgres/ 这篇文章,当时我也卡在 pg 上,但是这篇文章顺利的解决问题。OpenERP 的很多技术文章真感觉高大上。
createuser -d username
参数的意义可以看官网文档或 createuser --help
http://lmgtfy.com/?q=postgresql+permission+denied+to+create+database 为什么会搜不到内容?我看了前几个页面都是问题直接相关的
需要为你当前用户赋予创建数据库的权限
alter role {your_username} createdb
如果你用的是 Mac,通过PostgresApp安装的话,你连用户名密码权限啥都不用指定。
#32 楼 @blacktulip ...还好啦…………前两天有人升 14.04 就升坏了……想修都不知道怎么下手……
……Arch 玩坏的几次还都知道怎么抢救……
dropuser yby
createuser -s yby
变身 superuser 了,却一直提示我密码不对
FATAL: password authentication failed for user "yby"
FATAL: password authentication failed for user "yby"
折腾来折腾去设置来设置去没弄成功……
想再 dropuser 一次,重新设置个带密码版本的吧,竟然还不让
yby@yby:~/YBY/r$ sudo su - postgres
postgres@yby:~$ dropuser yby
dropuser: removal of role "yby" failed: ERROR: role "yby" cannot be dropped because some objects depend on it
DETAIL: owner of function pg_logfile_rotate()
owner of function pg_file_length(text)
owner of function pg_file_read(text,bigint,bigint)
owner of function pg_logdir_ls()
owner of function pg_file_unlink(text)
owner of function pg_file_rename(text,text)
owner of function pg_file_rename(text,text,text)
owner of function pg_file_write(text,text,boolean)
owner of extension adminpack
A database superuser bypasses all permission checks, except the right to log in.
http://www.postgresql.org/docs/9.3/interactive/role-attributes.html
嘿嘿
development:
adapter: postgresql
encoding: unicode
database: r_development
pool: 5
username: yby
password: xxxx
host: 127.0.0.1
test:
adapter: postgresql
encoding: unicode
database: r_test
pool: 5
username: yby
password: xxxx
host: 127.0.0.1
PostgreSQL 好久不用了。
看提醒信息应该是没有创建数据库的权限。
你还不如自己手动创建绕过,然后跑 rake db:migrate -t 试试,看能不能创建对应的表