こんにちは。ここ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
に直しましょう。