a-Column

【FreeBSD】postgreSQLインストール

今回使用するソースは下記の通りです。

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=#

Last Update : 2006年02月14日 (火) 01:18