问题描述
我最近买了一台新机器,现在想在Github上从事我的项目。我很好奇如何在本地计算机上正确设置Postgres数据库。我在Ubuntu(12.04)上安装了postgresql
,pgadmin3
和libpq-dev
。
我拉下项目:
git clone https://github.com/thebenedict/cowsnhills.git
并运行:
bundle
。
当我跑步时:
rake db:create && rake db:schema:load
我收到此错误:
rake db:create && rake db:schema:load
FATAL: password authentication failed for user "cnh"
FATAL: password authentication failed for user "cnh"
....
config/database.yml
文件如下所示:
development:
adapter: postgresql
encoding: unicode
host: localhost
database: cnh_development
pool: 5
username: cnh
password: cnh
test:
adapter: postgresql
encoding: unicode
host: localhost
database: cnh_test
pool: 5
username: cnh
password: cnh
production:
adapter: postgresql
encoding: unicode
host: localhost
database: cnh_production
pool: 5
username: cnh
password: cnh
设置Postgres数据库的正确方法是什么,这样我才能在本地计算机上运行此项目?
现在,当我启动Rails服务器时,我得到:
最佳解决方法
首先,安装postgresql
sudo add-apt-repository ppa:pitti/postgresql
sudo apt-get update
#now install postgresql
sudo apt-get install postgresql-9.1 libpq-dev
在psql中创建一个新用户
sudo su postgres
createuser user_name #Shall the new role be a superuser? (y/n) y
的Gemfile
gem 'pg'
捆绑安装
development.yml
development:
adapter: postgresql
database: app_development
pool: 5
username: user_name
password:
次佳解决方法
寻找相同答案时,我碰到了您的问题。我试图按照@ prasad.surase给您的指示进行操作。我发现的问题是,ppa存储库很快就会在12.04 LTS上贬值。相反,我找到了此链接,它确实有所帮助。
PostgreSQL setup for Rails development in Ubuntu 12.04
-
通过软件包管理器安装postgresql和管理工具
sudo apt-get install postgresql libpq-dev phppgadmin pgadmin3
-
以postgres用户身份登录到postgresql提示符
sudo su postgres -c psql
-
为您的项目创建一个PostgreSQL用户
create user username with password 'password';
-
使用与Ubuntu用户相同的名称和密码设置您的postgres用户,并使他成为postgres超级用户
alter user username superuser;
-
创建开发和测试数据库
create database projectname_development; create database projectname_test;
-
向用户授予数据库权限
grant all privileges on database projectname_development to username; grant all privileges on database projectname_test to username;
要结束postgresql会话,请输入\q
更新用户密码
alter user username with password ‘new password’;
第三种解决方法
您点击此链接http://www.cyberciti.biz/faq/howto-add-postgresql-user-account/
创建一个postgres用户并替换database.yml中的凭据