[HOME]: [Mac OS X]: [MacPython]: [Emacs]: [生存報告記]: [MacEmacs JP Project]: [NTEmacs JP Project]:

http://www.postgresql.org/
http://www.jp.postgresql.org/ (ミラー)
http://www.postgresql.jp/

PostgreSQL 7.2.x 付属ドキュメント

http://developer.apple.com/internet/macosx/postgres.html

http://www.macdevcenter.com/pub/a/mac/2002/06/07/postgresql.html

http://www.entropy.ch/software/macosx/postgresql/
http://www.serverlogistics.com/downloads-jag.php
を利用するのが簡易です。

Fink/PostgreSQL

cygwin+postgresql

Windows-Nativeサーバー&クライアントパッケージ

SQL

/psqlコマンド

【PostgreSQLウォッチ】第27回 SQLインジェクション脆弱性を修正,日本語ユーザーに大きな影響:ITpro

インストール前にマニュアルはローカルに保存して常に参照できるようにしておくと便利。

# これはマニュアルぐらい読めという意味です :-?

ソースからのインストール

http://www.postgresql.jp/PostgreSQL/download.html

のどれかより最新を取得します。解説に利用しているのはv7.3.1ですが他のバージョンでもあまり変化ありません。

finkを持っているなら

fink install readline

しておくと便利です。

./configure
でよいがぼくは以下のようにコンパイルしている。
./configure --with-includes=/sw/include/ --with-libraries=/sw/lib --with-python --with-java

http://www.omnigroup.com/mailman/archive/macosx-dev/2002-April/025954.html

http://conferences.oreillynet.com/presentations/macosx02/bjepson-databases.doc

設定

最初にPostgresのスーパーユーザを作成しておく。この時パスワード設定をするなどといったアホな事をしてはいけない。

所有者の変更

sudo chown -R pgsql /usr/local/pgsql/

データベース初期化

sudo -u pgsql initdb -D /usr/local/pgsql/data -E EUC_JP

起動方法は各種あります。

sudo -u pgsql /usr/local/bin/postmaster -i -D /usr/local/pgsql/data >>| ログの位置 2>&1 &
sudo -u pgsql /usr/local/bin/postmaster -D /usr/local/pgsql/data
sudo -u pgsql /usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

停止方法

sudo -u pgsql /usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile stop

データベースユーザ作成

sudo -u pgsql createuser testuser
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) n
CREATE USER 

テスト用データベース作成

createdb --username testuser test 
CREATE DATABASE                           

データベースへの接続

psql test testuser

プログラムからの利用Java編

ln -s /usr/local/pgsql/share/java/postgresql.jar /Library/Java/Extensions/ 

http://www.entropy.ch/software/macosx/postgresql/TestPostgreSQL.java

を取得してくる。接続先データベース名および接続ユーザ名の変更を行いコンパイル

このままでは実行不能なので設定ファイルを変更。セキュリティを下げる事になるので十分に注意する事。

設定ファイルを変更する場合は一旦データベースを停止しておく事。

sudo -u pgsql vi data/postgresql.conf 
tcpip_socket = true

sudo -u pgsql vi data/pg_hba.conf 
一番末尾にいく Shift g
host all 192.168.0.0 255.255.255.0 trust

この場合CLASS CのLan内部からの接続を全て許可してしまう。

実際の設定ではもっと細かい設定が必要だが、ぼくの場合は数台から接続するし、外部に出していないので今回はこの設定でいく。

データベース再起動を行う。

先ほどのプログラムを実行して日付けと時間が表示されれば問題なし。

SSHを利用した安全な接続

SSHの設定を行なっておく。

postgresql.conf

tcpip_socket = true

もしくはiオプションを付加して起動しておく。

クライアント側でのコマンド

ssh hostname -L 4444:hostname:5432
psql -h localhost -p 3333 dbname

4444は任意の数字でよい。

詳細はマニュアル「SSHトンネルを使った安全なTCP/IP接続」の項を参照する事。

毎回設定していると面倒なので ~/.ssh/configに以下の設定をする

Host hostname
  LocalForward 4444 localhost:5432

これでつねに4444で安全に5432につながる。

PL/pgSQL

PL/pgSQL - SQL Procedural Language

参考サイト

PostgreSQL information page


CategoryDatabase