データベースサーバー構築(PostgreSQL)

最終更新日: 2008.08.24

<<トップページ <<新着情報 <<質問掲示板 <<アンケート <<サイト内検索 <<ダウンロード <<管理人へメール <<Fedoraで自宅サーバー構築

■概要

データベースサーバーは、サーバー上に作成したデータベースをデータベース管理システムを介してクライアントから操作できるようにするためのサーバー。
ここでは、フリーのリレーショナルデータベースサーバーであるPostgreSQLを使用する。


■PostgreSQLインストール

[root@linux ~]# yum -y install postgresql-server ← postgresql-serverインストール
Setting up Install Process
Setting up Repo:  crash-hat
repomd.xml                100% |=========================|  951 B    00:00
Setting up Repo:  base
repomd.xml                100% |=========================| 1.1 kB    00:00
Setting up Repo:  updates-released
repomd.xml                100% |=========================|  951 B    00:00
Reading repository metadata in from local files
crash-hat : ################################################## 75/75
base      : ################################################## 2622/2622
updates-re: ################################################## 669/669
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for postgresql-server to pack into transaction set.
postgresql-server-7.4.7-1 100% |=========================|  21 kB    00:00
---> Package postgresql-server.i386 0:7.4.7-1.FC3.2 set to be installed
--> Running transaction check

Dependencies Resolved
Transaction Listing:
  Install: postgresql-server.i386 0:7.4.7-1.FC3.2
Downloading Packages:
postgresql-server-7.4.7-1 100% |=========================| 3.0 MB    00:04
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: postgresql-server 100 % done 1/1

Installed: postgresql-server.i386 0:7.4.7-1.FC3.2
Complete!

[root@linux ~]# yum clean packages ← ダウンロードしたパッケージを削除
Cleaning up Packages
1 packages removed

■PostgreSQL起動

[root@linux ~]# /etc/rc.d/init.d/postgresql start ← PostgreSQL起動
データベースを初期化中:                                    [  OK  ]
postgresql サービスを開始中:                               [  OK  ]

[root@linux ~]# chkconfig postgresql on ← PostgreSQL自動起動設定

[root@linux ~]# chkconfig --list postgresql ← PostgreSQL自動起動設定確認
postgresql      0:off   1:off   2:on    3:on    4:on    5:on    6:off ← ランレベル2〜5のonを確認

■PostgreSQL設定

(1)PostgreSQL管理ユーザ(postgres)パスワード設定
※PostgreSQL管理ユーザ(postgres)はPostgreSQLのインストールにより作成されている
【システム上のpostgresユーザにパスワードを設定】
[root@linux ~]# passwd postgres ← システム上のpostgresユーザにパスワード設定
Changing password for user postgres.
New password: ← パスワード応答※表示はされない
Retype new password: ← パスワード応答(確認)※表示はされない
passwd: all authentication tokens updated successfully.

【PostgreSQL上のpostgresユーザにパスワードを設定】
[root@linux ~]# su - postgres ← postgresユーザになる

-bash-3.00$ psql template1 ← psqlコマンドでPostgreSQLに接続
Welcome to psql 7.4.2, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help on internal slash commands
       \g or terminate with semicolon to execute query
       \q to quit

template1=# alter user postgres with password 'パスワード'; ← PostgreSQL上のpostgresユーザにパスワード設定
ALTER USER ← パスワードが変更された

template1=# \q ← psqlコマンド終了

-bash-3.00$ exit ← rootユーザに戻る

(2)PostgreSQL設定
[root@linux ~]# su - postgres ← postgresユーザになる

-bash-3.00$ vi /var/lib/pgsql/data/postgresql.conf ← PostgreSQL設定ファイル編集
#
#       Connection Parameters
#
#tcpip_socket = false
tcpip_socket = true ← 追加(TCP/IP経由でのデータベース接続許可)

-bash-3.00$ vi /var/lib/pgsql/data/pg_hba.conf ← PostgreSQL認証設定ファイル編集
以下を最終行へ追加
local all  all trust ← 追加(ローカルからのアクセスは無条件に許可)
host  all  all 192.168.1.1  255.255.255.255  trust ← 追加(内部からのアクセスは無条件に許可)
host  all  all 0.0.0.0      0.0.0.0          password crypt ← 追加(上記以外からのアクセスはパスワード認証により許可)

-bash-3.00$ exit ← rootユーザに戻る

[root@linux ~]# /etc/rc.d/init.d/postgresql restart ← PostgreSQL再起動
postgresql サービスを停止中:                               [  OK  ]
postgresql サービスを開始中:                               [  OK  ]

■PostgreSQL確認

(1)PostgreSQLユーザ追加
※例としてユーザ名をcentosとする
[root@linux ~]# su - postgres ← postgresユーザになる

-bash-3.00$ createuser -AdPE centos ← PostgreSQLにcentosユーザを追加(システムに登録済のユーザであること)
Enter password for new user: ← パスワード応答※表示はされない
Enter it again: ← パスワード応答(確認)※表示はされない
CREATE USER

-bash-3.00$ exit ← rootユーザに戻る

以降は一般ユーザ(ここではcentosとする)で行う

(2)データベース作成
[root@linux ~]# su - centos ← centosユーザになる

[centos@linux ~]$ createdb --encoding EUC_JP test ← データベースtestを作成
CREATE DATABASE

[centos@linux ~]$ psql -l ← データベース作成確認
         List of databases
   Name    |   Owner   | Encoding
-----------+-----------+-----------
 template0 | postgres  | SQL_ASCII
 template1 | postgres  | SQL_ASCII
 test      | centos    | EUC_JP ← データベースtestが作成されている
(3 rows)

(2)psqlツール起動
コマンドラインでPostgreSQLデータベースを操作するツールを起動する
[centos@linux ~]$ psql test ← psqlツール起動

 Welcome to psql 7.4.1, the PostgreSQL interactive terminal.
 Type:  \copyright for distribution terms
        \h for help with SQL commands
        \? for help on internal slash commands
        \g or terminate with semicolon to execute query
        \q to quit

 test=> 

(3)テーブル作成
 test=> create table test(num int, name varchar(50)); ← テーブルtestを作成
CREATE TABLE

 test=> \d test ← テーブルtest作成確認
            Table "public.test"
 Column |         Type          | Modifiers
--------+-----------------------+-----------
 num    | integer               |
 name   | character varying(50) |


(4)データ登録
 test=> insert into test values(1,'山田太郎'); ← テーブルtestにデータを登録
INSERT

(5)データ照会
 test=> select * from test; ← テーブルtestのデータを照会
  num |   name
 -----+-----------
    1 | 山田太郎
 (1 row)

(6)テーブル削除
 test=> drop table test; ← テーブルtestを削除
DROP TABLE

(7)psqlツール停止
 test=> \q ← psqlツール停止

(8)データベース削除
[centos@linux ~]$ dropdb test ← データベースtestを削除
DROP DATABASE

[centos@linux ~]$ exit ← rootユーザに戻る

(9)PostgreSQLユーザ削除
[root@linux ~]# su - postgres ← postgresユーザになる

-bash-3.00$ dropuser centos ← PostgreSQLからcentosユーザ削除
DROP USER

-bash-3.00$ exit ← rootユーザに戻る



▲このページのトップへ戻る

LPIロゴ Copyright© 2005-2008 fallenangels, All rights reserved.
ご自由にリンクしてください(連絡は不要です)
本ページへのご意見・ご要望、誤字・脱字・リンク切れ等のご連絡はこちらからお願いします