RailsでPostgresを使おうとしてはまった

こんにちは。ここ1年くらいで3回くらい開発環境を入れ替えているのですが、1度環境を構築してしまうと最初に設定した部分とかは忘れがちになるんですよね。
いつもRails開発するときはMySQLを使っているのですが、今回、Postgresを使うことになりインストールしたのですが、はまりました。。。
なので、備忘録としてやった作業を書いておきます。

ちなみにOSはUbuntu12.04です。

RailsでPostgreSQLを使うための手順

まずはPostgresのインストール

sudo apt-get install postgresql

Postgresのパスワード変更

sudo passwd postgres

PostgresSQL用の開発プラットフォームpgAdminをインストール

sudo apt-get install pgadmin3

データベース上のユーザのパスワードを変更する

su - postgres
psql template1
alter user postgres with password '○○○';

Postgresの再起動

sudo /etc/init.d/postgresql restart

さて、準備は整ったので早速DBを作ってみる

bundle exec rake db:create

なんかエラー出た。

FATAL: Peer authentication failed for user “postgres”

調べてみる

結論としてはPeer認証が有効になっていたのが原因でした。
Peer認証が有効になっている場合は、ユーザ名とUnixユーザ名が一致している必要があります。

解決方法

/etc/postgresql/9.1/main/pg_hba.conf

local all postgres peer

の記述があります。
ここを

local all postgres md5

に直しましょう。

Ruby on RailsによるWEBシステム開発、Android/iPhoneアプリ開発、電子書籍配信のことならお任せください この記事を書いた人と働こう! Ruby on Rails の開発なら実績豊富なBPS

週刊Railsウォッチ

インフラ

BigBinary記事より

ActiveSupport探訪シリーズ