Differences between revisions 7 and 8
Deletions are marked like this. | Additions are marked like this. |
Line 25: | Line 25: |
[http://itpro.nikkeibp.co.jp/article/COLUMN/20060530/239359/ 【PostgreSQLウォッチ】第27回 SQLインジェクション脆弱性を修正,日本語ユーザーに大きな影響:ITpro] |
http://www.postgresql.org/
http://www.jp.postgresql.org/ (ミラー)
http://www.postgresql.jp/
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
を利用するのが簡易です。
Windows-Nativeサーバー&クライアントパッケージ
【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