This post originated from an RSS feed registered with Ruby Buzz
by Daniel Berger.
Original Post: PostgreSQL on Linux strangeness
Feed Title: Testing 1,2,3...
Feed URL: http://djberg96.livejournal.com/data/rss
Feed Description: A blog on Ruby and other stuff.
I recently ran into some frustrating behavior with PostgreSQL 8.3.4 on Linux with a RoR app. I could create a database, I could could connect to it from the command line or even with script/console. However, when I tried to run the app via Phusion Passenger I was getting this error:
/!\ FAILSAFE /!\ Tue Apr 06 23:19:47 +0000 2010
Status: 500 Internal Server Error
FATAL: Ident authentication failed for user "rails"
This was baffling because, as I said, I was able to log into the database manually just fine. After wasting several hours trying to nail it down I finally came across this blog entry that totally saved my bacon.
In short it appears that, with PostgreSQL on Linux*, you have to set passwords for each user (using ALTER USER postgres with encrypted password 'your_password';), set the authentication in your pg_hba.conf file to "md5", update your database.yml file with the appropriate password, and restart the PostgreSQL server (via sudo /etc/init.d/postgresql restart).
Once I did that all was well.
* I'm guessing, actually. It might be an Apache config issue, too. I never did determine the true cause for this behavior.