*PostgresSQLインストール [#z60e930f]

**ユーザ設定 [#t3aa61f0]
 # groupadd postgres
 # useradd -g postgres postgres

 # mkdir /usr/local/pgsql
 # chown postgres:postgres /usr/local/pgsql/

**インストール [#o8f5c2da]
 # 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ユーザ環境変数設定 [#m3c58a46]
 $ 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

**初期化 [#b3e8a4ee]
新しい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

**自動起動 [#r6ea9c0d]
 # 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

**設定ファイルの修正 [#aca0d781]
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

**起動 [#ad5f47b1]
 # su - postgres
 $ pg_ctl start -l /usr/local/pgsql/postgresql.log -D /usr/local/pgsql/data

**起動確認 [#f51d5dca]
 $ psql -l

**停止 [#i30f5567]
 $ pg_ctl stop

**ユーザの追加 [#o359a5fd]
 $ su - postgres
 $ createuser ユーザ名

**ユーザの削除 [#r90bae77]
 $ su - postgres
 $ dropuser ユーザ名

**DB作成 [#b36668a7]
 $ su - postgres
 $ createdb データベース名

**DB削除 [#vfb812a1]
 $ su - postgres
 $ dropdb データベース名

**DBに接続 [#fc633f68]
 $ su - postgres
 $ psql データベース名 -U ユーザー名 -W
*ユーザとDB作成 [#cf39b1e2]
DBとDBユーザ作成権限をもつユーザを作成し、DBを作成する。

**ユーザの追加(権限あり) [#fb9f3c0c]
※-a -d オプションはDB作成の権限を与えます。
 $ su - postgres
 $ createuser -a -d -U postgres -P ユーザー名
 Enter password for new role: 作成するユーザのパスワードを入力
 Enter it again: 作成するユーザのパスワードを再入力
 Password: postgres(スーパーユーザ)のパスワードを入力
 CREATE ROLE

|オプション|説明|h
|-a|ほかのDBユーザ作成を許可|
|-d|DB作成を許可|
|-U [接続ユーザ名]|PostgreSQLに接続するユーザ名を指定|
|-P|新しいDBユーザのパスワード|

**ユーザの追加(権限なし) [#oa92c2dc]
※-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ユーザで作成する) [#d85a29f1]
 $ createdb -E UTF-8 -O ユーザ名

 $ createdb -E UTF-8 データベース名

 Password: -Oで指定したオーナのパスワードを入力
 CREATE DATABASE

|オプション|説明|h
|-E|エンコーディングを設定|
|-O|作成するDBの所有者となるユーザを指定|
|-U [接続ユーザ名]|PostgreSQLに接続するユーザ名を指定|

**DB作成(DB所有者を指定する) [#d85a29f1]
 $ createdb -E UTF-8 -O ユーザ名 -U ユーザ名 データベース名
 Password: -Oで指定したオーナのパスワードを入力
 CREATE DATABASE

|オプション|説明|h
|-E|エンコーディングを設定|
|-O|作成するDBの所有者となるユーザを指定|
|-U [接続ユーザ名]|PostgreSQLに接続するユーザ名を指定|

#counter

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS