2014-09-22 156 views
2

我已經在Elastic Beanstalk上設置了我的Rails應用程序。但是,當我在asset:precompile部署時Rails正在試圖訪問的數據庫,它運行到這個錯誤的Postgres:Elastic Beanstalk - RDS Postgres - 密碼驗證失敗

2014-09-21 21:28:35,302 [INFO] (7941 MainThread) [directoryHooksExecutor.py-29] [root directoryHooksExecutor info] Output from script: running 'bundle exec rake assets:precompile'... 
/usr/local/share/gems1.9/gems/bundler-1.6.2/lib/bundler/runtime.rb:222: warning: Insecure world writable dir /var/app/ondeck/vendor/bundle/ruby/1.9.1/bin in PATH, mode 040777 
rake aborted! 
PG::ConnectionBad: FATAL: password authentication failed for user "ebroot" 
FATAL: password authentication failed for user "ebroot" 
/var/app/ondeck/vendor/bundle/ruby/1.9.1/gems/activerecord-4.0.2/lib/active_record/connection_adapters/postgresql_adapter.rb:831:in `initialize' 
/var/app/ondeck/vendor/bundle/ruby/1.9.1/gems/activerecord-4.0.2/lib/active_record/connection_adapters/postgresql_adapter.rb:831:in `new' 

這是我database.yml

production: 
    adapter: postgresql 
    encoding: unicode 
    database: <%= ENV['RDS_DB_NAME'] %> 
    username: <%= ENV['RDS_USERNAME'] %> 
    password: <%= ENV['RDS_PASSWORD'] %> 
    host: <%= ENV['RDS_HOSTNAME'] %> 
    port: <%= ENV['RDS_PORT'] %> 

而且我有以下的配置上我optionsettings文件:

[aws:rds:dbinstance] 
DBDeletionPolicy=Snapshot 
DBEngine=postgres 
DBInstanceClass=db.t1.micro 
DBSnapshotIdentifier= 
DBUser=ebroot 

從AWS管理控制檯RDS我已檢查該用戶名是僅限。然而它沒有連接。

謝謝!


編輯:

好吧,我SSHed到實例,並試圖找出是爲RDS_PASSWORD設置和我吃驚的是,這只是該密碼的前四個字符值!

爲什麼會發生這種情況?

+0

你是如何創建數據庫? – 2014-09-22 14:21:00

+0

它是在'eb init'創建的。 – 2014-09-22 17:06:47

+1

你可以嘗試不同的密碼嗎?難道你有一些導致截斷的特殊字符?儘管如此,我的經驗不應該發生。 – 2014-09-23 05:07:08

回答

0

如果連接成功,則需要嘗試。

試試這個

1登錄到你的EB
eb ssh sampleapp-env

2觸發連接

nc -vz your_eb.endpoint_url 5432