2014-08-30 99 views
0

我剛剛在運行Ubuntu的Godaddy VPS上創建了一個新的RoR項目。該應用程序設置爲運行已安裝並正在運行的Postgres。Postgres Rails DB Bug

w當我做了初始前,我得到:

server$ bin/rake db:create db:migrate 
FATAL: role "root" does not exist 
Run `$ bin/rake db:create db:migrate` to create your database 
/usr/local/rvm/gems/ruby-2.1.2/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql_adapter.rb:898:in `rescue in connect' 
/usr/local/rvm/gems/ruby-2.1.2/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql_adapter.rb:888:in `connect' 
/usr/local/rvm/gems/ruby-2.1.2/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql_adapter.rb:568:in `initialize' 
/usr/local/rvm/gems/ruby-2.1.2/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql_adapter.rb:41:in `new' 
/usr/local/rvm/gems/ruby-2.1.2/gems/activerecord-4.1.5/lib/active_record/connection_adapters/postgresql_adapter.rb:41:in `postgresql_connection' 
/usr/local/rvm/gems/ruby-2.1.2/gems/activerecord-4.1.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:435:in `new_connection' 
/usr/local/rvm/gems/ruby-2.1.2/gems/activerecord-4.1.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:445:in `checkout_new_connection' 
/usr/local/rvm/gems/ruby-2.1.2/gems/activerecord-4.1.5/lib/active_record/........ 

這裏是我的數據庫陽明

development: 
    adapter: postgresql 
    encoding: utf8 
    database: project_development 
    pool: 5 
    username: philip 
    password: ###  
test: &TEST 
    adapter: postgresql 
    encoding: utf8 
    database: project_test 
    pool: 5 
    username: philip 
    password: ### - not real 

production: 
    adapter: postgresql 
    encoding: utf8 
    database: project_production 
    pool: 5 
    username: philip 
    password: ### 

我試圖rootphilip
我已經在PG中創建了角色和用戶。

+0

不管我的database.yml的,耙抱怨根 – Tithos 2014-08-30 17:40:36

+0

我想有另一個文件 – Tithos 2014-08-30 17:40:54

回答

1

在Ubuntu中,PostgreSQL的默認配置爲允許通過Unix套接字本地連接只用相同的用戶名作爲身份驗證連接Unix用戶。

你在你的操作系統中運行你的應用程序爲root。 PostgreSQL迫使你使用root作爲數據庫用戶名。如果您希望它使用不同的數據庫帳戶,則需要以不同的用戶身份運行您的應用。

顯然,您的PostgreSQL服務器沒有root帳戶。

髒的修復可能是通過TCP/IP認證:設置host127.0.0.1database.yml,而這些限制將不會有任何效果。
規避它的另一種方法是編輯pg_hba.conf以使本地連接不需要「同一個用戶」。

0

我重新開始刪除PG中的所有角色。我重新創建我需要的東西,這是所有好的