仕事で使っているDBがPostgreSQLなので自分でインストールし、お勉強をします。自分のWindowsマシンにインストールしてもよいが、せっかく借りているさくらVPSがあるのでここにインストールします。
では、さっそくインストール
ちなみにOSは、CentOS release 6.2
パッケージのインストール
# rpm -ivh http://yum.postgresql.org/9.1/redhat/rhel-6-x86_64/pgdg-centos91-9.1-4.noarch.rpm
postgresql-serversのインストール
# yum install postgresql91-server
インストールすると、postgresというユーザーが作られるようです。
パスワードが設定されていないので、パスワードを設定してやります。
# passwd postgres
新しいUNIXパスワードを入力してください:
新しいUNIX パスワードを再入力してください:
passwd: パスワードは正しく更新されました
pqslを終了するには、\qを入力します。
データベースクラスタの初期化
postgresユーザに切り替えます。
# su - postgres
.bash_profileに環境変数を追加します。
$ vi ~postgres/.bash_profile
export PATH=$PATH:/usr/pgsql-9.1/bin
export POSTGRES_HOME=/usr/pgsql-9.1
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=/var/lib/pgsql/9.1/data
export MANPATH="$MANPATH":$POSTGRES_HOME/share/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"
環境変数を反映します。
$ source ~postgres/.bash_profile
データベースクラスタの初期化を行います。
$ initdb --no-locale -D /var/lib/pgsql/9.1/data -E UTF-8
--no-locale
ロケールは言語や文化に応じた処理をするOSの機構です。
PostgreSQLではデータのソート処理に使用しますが英語や日本語のデータを扱う場合は不要です。有効にすると、ロケール処理の分、ソート処理などが遅くなるため無効にします。
-D
データベースの保存場所を指定します。 自分はここ postmaster -D /var/lib/pgsql/9.1/data
$ vi /var/lib/pgsql/9.1/data/postgresql.conf
ワイルドカードへ変更
listen_addresses = '*'
ポートのところのコメントアウトじゃなくする
port 5432
pg_hba.confを修正 ホストをどこからもOKにする。
# vi /var/lib/pgsql/9.1/data/pg_hba.conf
host all all 0.0.0.0 0.0.0.0 md5
iptablesコマンドで、許可を与えるべし
iptables -I INPUT -p tcp -m tcp --dport 5432 -j ACCEPT
PostgreSQLに接続します。
psql -h localhost -U postgres -d postgres
パスワード変更
ALTER USER postgres encrypted password 'hoge';
参考サイト