PostgreSQL 6.4.2 のインストールログ 1. 展開 今回は 「Linux/FreeBSD SQLデータベース構築入門」LOCUS/主婦の友社 収録の postgresql-6.4.2-patched.tar.gz  を使用。 gtar zxvf postgesql-6.4.2-patched.tar.gz 2. GNU readline のインストール 同じ CD-ROM から readline をインストール gtar readline-4.0.tar.gz cd readline-4.0 ./configure make; make install 3. flex のインストール lex では途中でエラーが出たので flex-2.5.4 をインストール。 4. postgres ユーザの登録 admintool で postgres グループを作成し、postgres ユーザをそのグループ  に属し、ホームディレクトリをインストールディレクトリにして登録。 (1. で展開したディレクトリも postgres の所有にしておく) 5. postgres でログイン cd postgresql-6.4.2/src ./configure --prefix=/usr/local/pgsql --with-perl --with-cxx=g++ --with-mb=EUC_JP --with-template=solaris_sparc-gcc gmake all >& make.log & (ここで string がないというエラーが出たら g++ の include ファイルがないので インストールする。パッケージが GNUlibg++.2.7.2.SPARC.Solaris2.5.pkg.tgz (g++ が 2.7.2.* の場合)をインストールすればよい。) 6. インストール gmake install >& make.install.log & gmake install-man 7. 環境変数設定 PATH=$PATH:/usr/local/pgsql/bin MANPATH=$MANPATH:/usr/local/pgsql/man LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib PGLIB=/usr/local/pgsql/lib PGDATA=/usr/local/pgsql/data export PATH MANPATH PGLIB PGDATA LD_LIBRARY_PATH 8. データベースの作成例 a. postgres でログイン (USER 変数が設定されてない場合は $USER=postgres で設定) b. initdb c. postmaster -D/usr/local/pgsql/data -S -i で起動 (うまくいったら自動起動するように /etc/rc3.d/S99postgres に #!/bin/sh su postgres -c "/usr/local/pgsql/bin/postmaster -D/usr/local/pgsql/data -S -i" という起動スクリプトを準備しておく) d. postgres ユーザの登録 createuser コマンドで登録 (Web サーバからも使う場合は nobody も登録しておく。ただし権限は制限) e. データベースの作成 (ここからは作成権限のある登録ユーザでやればよい) createdb sfmgz f. テーブルの設計 create ステートメントをファイルに作成(sfmgz_tab.create) create table sfmgz_tab ( author varchar(58), title varchar(90), pages varchar(9), times int2, comment char(6), magazine varchar(30), date char(10), volume varchar(7), org_author varchar(39), org_title varchar(108), translator varchar(20), number int2 ); g. テーブル作成 psql sfmgz < /usr/local/pgsql/sfmgz_tab.create h. テーブルにデータを入れる psql sfmgz sfmgz=> copy sfmgz_tab from '/usr/local/pgsql/sfmgz_bk.tab'; (データはあらかじめ TAB 区切りにしておく) i. 確認 sfmgz=> select * from sfmgz_tab where number = 8000; 結果が表示されれば OK。 j. 他のユーザ(nobody とか)からも使う場合は grant コマンドで設定 grant select on sfmgz_tab to nobody;