PostgresSQLインストール

ユーザ設定

# groupadd postgres
# useradd -g postgres postgres
# mkdir /usr/local/pgsql
# chown postgres:postgres /usr/local/pgsql/

インストール

# wget ftp://ftp.jp.postgresql.org/source/v8.2.4/postgresql-8.2.4.tar.gz
# tar zvxf postgresql-8.2.4.tar.gz
# chown -R postgres:postgres postgresql-8.2.4
$ su - postgres
$ cd /usr/local/src/postgresql-8.2.4
$ ./configure
$ make
$ make install

Postgresユーザ環境変数設定

$ vi .bash_profile
設定
export PATH=$PATH:/usr/local/pgsql/bin
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"
export MANPATH="$MANPATH":$POSTGRES_HOME/man
export PGDATA=/usr/local/pgsql/data

初期化

新しいPostgreSQL データベースクラスタ(またはデータベースシステム)を作成する。

no-localeは日本語を使うときに必ずつける。

$ initdb --encoding=UTF8 --no-locale -D /usr/local/pgsql/data
$ exit
パスが通ってない場合
$ /usr/local/pgsql/bin/initdb --encoding=UTF8 --no-locale -D /usr/local/pgsql/data

自動起動

# su - root
# cd /etc/rc.d/init.d/
# cp -p /usr/local/src/postgresql-8.2.4/contrib/start-scripts/linux /etc/init.d/postgresql
# chown root:root /etc/init.d/postgresql
# chmod 755 /etc/init.d/postgresql
# chkconfig --level 2345 postgresql on

Debianには"update-rc.d"というコマンドが用意されている。

"update-rc.d"を使い、80ポートで起動するように起動スクリプトを作成する。

# update-rc.d postgresql defaults 80

設定ファイルの修正

postmasterはデフォルトではUNIXドメインソケット接続しか受け付けない。

そのため、TCP/IPソケットでの他ホストからの接続を許可する。

# vi /usr/local/pgsql/data/postgresql.conf
設定
listen_addresses = '*'

デフォルトでは自ホストからの接続のみ許可になっているので、 PostgreSQLへのクライアントの接続許可の設定を行う。

# vi /usr/local/pgsql/data/pg_hba.conf
設定
host all all 192.168.0.0/24

起動

# su - postgres
$ pg_ctl start -l /usr/local/pgsql/postgresql.log -D /usr/local/pgsql/data

起動確認

$ psql -l

停止

$ pg_ctl stop

ユーザの追加

$ su - postgres
$ createuser ユーザ名

ユーザの削除

$ su - postgres
$ dropuser ユーザ名

DB作成

$ su - postgres
$ createdb データベース名

DB削除

$ su - postgres
$ dropdb データベース名

DBに接続

$ su - postgres
$ psql データベース名 -U ユーザー名 -W

ユーザとDB作成

DBとDBユーザ作成権限をもつユーザを作成し、DBを作成する。

ユーザの追加(権限あり)

※-a -d オプションはDB作成の権限を与えます。

$ su - postgres
$ createuser -a -d -U postgres -P ユーザー名
Enter password for new role: 作成するユーザのパスワードを入力
Enter it again: 作成するユーザのパスワードを再入力
Password: postgres(スーパーユーザ)のパスワードを入力
CREATE ROLE
オプション説明
-aほかのDBユーザ作成を許可
-dDB作成を許可
-U [接続ユーザ名]PostgreSQLに接続するユーザ名を指定
-P新しいDBユーザのパスワード

ユーザの追加(権限なし)

※-a -d オプションは任意。権限を与えたくない場合は、以下のようにするほうがいいかもです。  ただし、DBの所有者をPostgresにするなどPHPからアクセスできるようにしないといけないです。

$ createuser -U postgres -P ユーザー名
Enter password for new role:
Enter it again:
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n

$ psql -U postgres -W

postgres> SELECT * FROM pg_shadow;

-----------------+----------+-------------+----------+-----------+-------------------------------------+----------+-----------
     usename     | usesysid | usecreatedb | usesuper | usecatupd |               passwd                | valuntil | useconfig
-----------------+----------+-------------+----------+-----------+-------------------------------------+----------+-----------
 postgres        |        0 | t           | t        | t         |                                     |          |
 test            |        0 | f           | f        | f         |                                     |          |
-----------------+----------+-------------+----------+-----------+-------------------------------------+----------+-----------

DB作成(DB所有者をPostgresユーザで作成する)

$ createdb -E UTF-8 データベース名
Password: -Oで指定したオーナのパスワードを入力
CREATE DATABASE
オプション説明
-Eエンコーディングを設定
-O作成するDBの所有者となるユーザを指定
-U [接続ユーザ名]PostgreSQLに接続するユーザ名を指定

DB作成(DB所有者を指定する)

$ createdb -E UTF-8 -O ユーザ名 -U ユーザ名 データベース名
Password: -Oで指定したオーナのパスワードを入力
CREATE DATABASE
オプション説明
-Eエンコーディングを設定
-O作成するDBの所有者となるユーザを指定
-U [接続ユーザ名]PostgreSQLに接続するユーザ名を指定
Counter: 9928, today: 1, yesterday: 0

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-09-24 (火) 14:56:23 (1310d)