随時更新
リンク切れ報告、サイト情報お待ちしています"
sawa@itnavi.com
リンクは御自由にどうぞ
|
構築環境
PostgreSQL 7.0.2
Red Hat Linux 6.2J
PostgreSQL 7.1での設定例
PostgreSQL 7.1.2での設定例
PostgreSQL 7.2.3での設定例
インストール編
1.インストールするには
データベース作成編
1.データベースを作成するには
Java編
1.JDBCドライバーを作成するには
2.[SQL Exception]No suitable driverを解消するには
3.[SQL Exception]Connection refused.を解消するには
4.[SQL Exception]Permission denied.を解消するには
運用編
1.ユーザを作成するには
2.POSTMASTER(デーモン)を起動するには
3.テーブル定義を抽出するには
4.Accessからアクセスするには(ODBC)
インストール編
Q.インストールするには
A.
1.postgresユーザを追加する
useradd postgres
2.インストールディレクトリを作成する
postgresユーザが書き込めるように設定する。
# mkdir /usr/local/src/postgresql-7.0/
# chown postgres:postgres /usr/local/src/postgresql-7.0/
# mkdir /usr/local/pgsql
# chown postgres:postgres /usr/local/pgsql
|
2.プロファイルの設定
~postgres/.bash_profile
PATH="$PATH":/usr/local/pgsql/bin
PG=/usr/local/pgsql
export PGLIB=$PG/lib
export PGDATA=$PG/data
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":$PGLIB
|
3.インストール
※initdbはrootで実行しない。
# su - postgres
$ cd /home/postgres/
$ tar xfz postgresql-7.0.2.tar.gz
$ cd postgresql-7.0.2/src
$ ./configure --enable-multibyte=EUC_JP
$ make all
$ make install
$ cd ../doc
$ make install
$ initdb
This database system will be initialized with username "postgres".
This user will own all the data files and must also own the server process.
Creating database system directory /usr/local/pgsql/data
Creating database system directory /usr/local/pgsql/data/base
Creating database XLOG directory /usr/local/pgsql/data/pg_xlog
Creating template database in /usr/local/pgsql/data/base/template1
Creating global relations in /usr/local/pgsql/data/base
Adding template1 database to pg_database
Creating view pg_user.
Creating view pg_rules.
Creating view pg_views.
Creating view pg_tables.
Creating view pg_indexes.
Loading pg_description.
Vacuuming database.
Success. You can now start the database server using:
/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
or
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start
|
$ chmod +w /usr/local/pgsql/data/postmaster.opts.default
$ vi /usr/local/pgsql/data/postmaster.opts.default
|
postmaster.opts.defaultにpostmasterの起動オプション設定しておくこともできます。
$ pg_ctl -w start
Waiting for postmaster starting up...DEBUG: Data Base System is starting up at
Tue May 30 01:01:34 2000
DEBUG: Data Base System was shut down at Tue May 30 01:01:13 2000
DEBUG: Data Base System is in production state at Tue May 30 01:01:34 2000
done.
postmaster successfully started up.
|
postmasterの自動起動の設定をするなら。
/etc/rc.d/rc.localに以下を追加します。
# Start Postgres
su - postgres -c "/usr/local/pgsql/bin/postmaster -S -i"
|
データベース作成編
1.データベースの作成
$ createdb testdb
CREATE DATABASE
|
SQL文の場合、
CREATE DATABASE <データベース名>
[ WITH LOCATION = '<配置>' ]
[ ENCODING = '<エンコーディング名>' ]
2.テーブルの作成
$ psql testdb
Welcome to psql, 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
testdb=# CREATE TABLE testtab (
testdb(# id INT,
testdb(# name VARCHAR(255),
testdb(# CONSTRAINT test_pk PRIMARY KEY (id));
NOTICE: CREATE TABLE/PRIMARY KEY will create implicit index 'test_pk' for table
'testtab'
CREATE
testdb=# INSERT INTO testtab VALUES(1,'ほげほげ');
INSERT 18935 1
testdb=# SELECT * FROM testtab;
id | name
----+----------
1 | ほげほげ
(1 row)
testtab-# \q
|
Java編
1.JDBCドライバーを作成するには
# su - postgres
$ cd /usr/local/src/postgresql-7.0.2/src/interfaces/jdbc/
$ make
------------------------------------------------------------
Due to problems with some JVMs that dont return a meaningful
version number, we have had to make the choice of what jdbc
version is built as a compile time option.
If you are using JDK1.1.x, you will need the JDBC1.2 driver.
To compile, type:
make jdbc1 jar
If you are using JDK1.2 (aka Java2) you need the JDBC2.
To compile, type:
make jdbc2 jar
Once you have done this, a postgresql.jar file will be
produced. This file will only work with that particular
JVM.
------------------------------------------------------------
|
ということで、postgreSQL7.0からはJDK1.1かJDK1.2を指定する必要があるようです。
makeが終わるとpostgresql.jarというファイルが作成されているはずです。
$ cp postgresql.jar $JAVA_HOME/jre/lib/ext
|
$JAVA_HOME/jre/lib/extにコピーする。
又はCLASSPATHの切ってあるフォルダにコピーします。
TOMCATから使うなら、$TOMCAT_HOME/libが良いでしょう。
2.[SQL Exception]No suitable driverを解消するには
JDBCのURLが誤っている時のExceptionです。
・誤っている例 //の前の:が抜けている
String url = "jdbc:postgresql//localhost:5432/hoge";
[SQL Exception]
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getConnection(DriverManager.java:473)
at java.sql.DriverManager.getConnection(DriverManager.java:133)
at JdbcTest.main(JdbcTest.java:40)
|
JDBCTM ガイド: 使用の開始を参照しましょう。
3.[SQL Exception]Connection refused.を解消するには
postmaster -S のみで実行されている時のExceptionです。
[SQL Exception]
Connection refused. Check that the hostname and port is correct, and that the po
stmaster is running with the -i flag, which enables TCP/IP networking.
at org.postgresql.Connection.openConnection(Connection.java:123)
at org.postgresql.Driver.connect(Driver.java:116)
at java.sql.DriverManager.getConnection(DriverManager.java:453)
at java.sql.DriverManager.getConnection(DriverManager.java:133)
at JdbcTest.main(JdbcTest.java:40)
|
postmaster -S -i で起動しましょう。
自ホスト以外からの接続を受け付けるには、/usr/local/pgsql/data/pg_hba.confの設定を行う。
3.[SQL Exception]Permission denied.を解消するには
JDBCからの接続ユーザにテーブルへのアクセス権が与えられていない時のExceptionです。
[SQL Exception]
java.sql.SQLException: ERROR: test: Permission denied.
at org.postgresql.Connection.ExecSQL(Connection.java:393)
at org.postgresql.jdbc2.Statement.execute(Statement.java:273)
at org.postgresql.jdbc2.Statement.executeQuery(Statement.java:54)
at JdbcTest.main(JdbcTest.java:49)
|
psql よりアクセス権を設定しましょう。
(hogeユーザにtesttabテーブルへのアクセス権を与える例)
$ psql testdb
Welcome to psql, 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
testdb=# GRANT ALL ON testtab TO hoge;
CHANGE
testdb=# \q
|
運用編
1.ユーザを作成するには
CREATE USER <ユーザ名>
[ WITH PASSWORD <パスワード> ]
[ CREATEDB | NOCREATEDB ]
[ CREATEUSER | NOCREATEUSER ]
[ IN GROUP <グループ名> [, ...] ]
[ VALID UNTIL <有効期限> ]
(hogeユーザをパスワードpasswordで作成する例)
$ psql testdb
Welcome to psql, 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
testdb=# CREATE USER hoge WITH PASSWORD 'password';
CREATE USER
testdb=# \q
|
登録されているユーザは
SELECT * FROM pg_user;
で確認することが出来る。
createuserコマンドというのもある。
削除は、
DROP USER <ユーザ名>
2.POSTMASTERを起動するには
PostgreSQL管理者ユーザで行います。(postgres)
-S 端末からPOSTMASTERを切り離し、デーモンとして動かす。
-i 他のホストから接続の許可
自ホスト以外からの接続を受け付けるには、/usr/local/pgsql/data/pg_hba.confの設定を行う。
3.テーブル定義を抽出するには
psqlで見る場合
$ psql testdb
Welcome to psql, 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
testdb=# \d
List of relations
Name | Type | Owner
---------+-------+----------
testtab | table | postgres
(1 row)
testdb=# \d testtab
Table "testtab"
Attribute | Type | Modifier
-----------+--------------+----------
id | integer | not null
name | varchar(255) |
Index: test_pk
testdb=# \q
|
pg_dumpで一括出力の場合
$ pg_dump testdb -s
\connect - postgres
CREATE TABLE "testtab" (
"id" int4 NOT NULL,
"name" character varying(255),
PRIMARY KEY ("id")
);
REVOKE ALL on "testtab" from PUBLIC;
GRANT ALL on "testtab" to "hoge";
|
4.Accessからアクセスするには
ODBCドライバーを使います。
まずPostgreSQL ODBC DriverのオフィシャルWEBサイトからODBCドライバーをダウンロードします。
postdrv.exeを実行するとインストーラが走りインストールされます。
次に、インターウィズ PostgreSQL ODBC Driver 日本語版よりODBC Driver 日本語版をダウンロードし、Windowsのシステムディレクトリにインストールされたpsqlodbc.dllに上書きします。
そしてコントロールパネルのデータソース(ODBC)よりODBCの設定をします。
PostgreSQL
先頭へ戻る
トップページへ戻る
2001年3月23日更新
|