今回使用するソースは下記の通りです。
postgresql-8.1.2.tar.gz
まずはいつも通り解凍します。
#tar zxvf postgresql-8.1.2.tar.gz
次にインストールマニュアルを見ると、configureしろと書いて
ありますので、configureを行います。
#cd postgresql-8.1.2
#./configure
makeをする前に、postgreSQLはroot起動できない為に、postgre
SQLを起動する為のユーザーを作成します。
(今回はpostgresユーザーを使用します)
#adduser postgres
次にインストールディレクトリィの作成を行います。
#mkdir /usr/local/pgsql
#chown -R postgres:postgres /usr/local/pgsql
そしてmakeを行います(この際、gmakeが推奨されていますので
gmakeが入っていない環境では実行エラーがでます)
#make(gmake)
#make install
データベースを初期化します。(postgresユーザーにて行う)
$/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
★postgreSQL起動方法
早速起動してみます。起動する方法は下記のように豊富です。
$/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &
$/usr/local/pgsql/bin/postmaster -S -i
$/usr/local/pgsql/bin/pg_ctl -w start
★postgreSQL停止
$pg_ctl -w stop
★設定ファイルを変更する。
多くの事が設定ファイルの変更だけで、できるようになっています。
$vi /usr/local/pgsql/data/pg_hba.conf
・設定例
# すべての接続を許可(危険)
host all 0.0.0.0 0.0.0.0 trust
# データベース名databaseへのすべての接続を許可
host database 0.0.0.0 0.0.0.0 trust
# パスワード認証を行なう
host all 0.0.0.0 0.0.0.0 password
# 192.168.0.10からの接続を許可
host all 192.168.0.10 255.255.255.255 trust
★postgreSQLのバージョン確認
#/usr/local/pgsql/bin/postgres -V
postgres (PostgreSQL) 7.4.5
★データベースの一覧表示
データベースに接続した状態で、下記のコマンドを
入力します。
db=# \l
★データベースのユーザーテーブルの一覧表示
db=# \dt
★テーブルのアクセス権限表示
db=# \dp
★ユーザの一覧表示
db=# select usename from pg_user;
★データベース変更
mugaiデータベースに移動。
db=# \c mugai
★データベースの操作
testデータベースの内部でテーブル作成などを行う
場合には下記のコマンドで、データベース内に入る。
$/usr/local/pgsql/bin/psql test
★データベース接続テスト
WebサーバからDBサーバに接続をしてみる。
(DBサーバのIPアドレスは、192.168.1.130を想定。
testユーザーでMARIKAデータベースにアクセスをしています)
$/usr/local/pgsql/bin/psql -h 192.168.1.130 -U test MARIKA
Password: xxxxxxxxxx
Welcome to psql 7.4.5, the PostgreSQL interactive terminal.
edirect_ka=> \q
なおDBサーバから直接データベースに接続する際には、
下記のコマンドをしようして接続を行う。
[postgres@db bin]$ /usr/local/pgsql/bin/psql -U test MARIKA
★postgreSQLの再移動
$ /usr/local/pgsql/bin/pg_ctl reload -D /usr/local/pgsql/data/
★接続制限
主にpg_hba.confで行います。記載方法の例は下記の通りです。
(WEBサーバのIPアドレスは、192.168.1.19。
testユーザーでMARIKAデータベースにアクセスをしています)
---pg_hba.conf
host MARIKA test 192.168.1.19 255.255.255.255 md5
---
★ユーザーの作成
-testユーザーの作成。
# PGPASSWORD="xxxxxx" /usr/local/pgsql/bin/createuser -U postgres --no-adduser --no-createdb --pwprompt test
-directユーザーの作成
$ createuser --username=postgres --no-adduser --no-createdb --pwprompt direct
*にはパスワードを入力する。
+にはデータベースのrootパスワードを入力。
Enter password for new user:*
Enter it again:*
Password:+
CREATE USER
★データベースの作成
方法は2つあります。
・MARIKAデータベースの作成。
# PGPASSWORD="xxxxxx" /usr/local/pgsql/bin/createdb -U postgres --encoding=utf-8 MARIKA
・作成したい状況はこちら
database name staging
encode UNICODE
user name staging
passord mememe
$ createdb -E UNICODE staging
CREATE DATABASE
$ createuser -P staging
Enter password for new user: mememe
Enter it again: mememe
Shall the new user be allowed to create databases? (y/n) n
Shall the new user be allowed to create more new users? (y/n) n
CREATE USER
★権限の付与
今回はtestユーザーに、MARIKAデータベースのleadsテーブルに
SELECT権限与える場合です。
すでにMARIKAデータベースに接続している事が前提条件と
なります。
MARIKA=# GRANT SELECT ON leads TO test;
GRANT
・権限で指定できる項目は下記のとおりです。
select
insert
update
delete
rule
all
★データの挿入
今回は、tbl_v_productというテーブルに、データを挿入する場合
です。データの形式は一致しないと駄目です。
insert into tbl_v_product values('2008-03-18 11:28:48.844401','2008-03-18 11:28:48.844401',410,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
★データの更新
今回は、tbl_v_productというテーブルでproduct_idのフィールドが10の値のデータのview_usフィールドを0にする。
update tbl_v_product set view_us = '0' where product_id ='10';
★DUMPデータのレストア
gzipで圧縮されたdumpファイルを元に戻すには、
下記のコマンドを使用します。
cat filename.gz | gunzip | /usr/local/pgsql/bin/psql dbname
★ユーザー一覧の確認
postgres=# \du
List of roles
Role name | Superuser | Create role | Create DB | Connections | Member of
-----------+-----------+-------------+-----------+-------------+-----------
postgres | yes | yes | yes | no limit |
user | yes | yes | yes | no limit |
(2 rows)
★パスワード変更
postgres=# alter role postgres with password '変更するパスワード';
ALTER ROLE
postgres=#