ページ更新: 2004-11-25 (木) (5288日前)

2004-09-20

Postgresql-8.0-beta2-dev3.msi をインストールしてみた。

[編集]

インストーラ #

p00-1.png

  • ZIPを展開すると、インストーラー (postgresql-8.0-beta2-dev3.msi) ができる。
[編集]

Welcome to the PostgreSQL Installation Wizard #

p01.png

[編集]

Installation notes #

p02.png

  • よく読むべし。WordPadに貼って保存すると良い。
[編集]

Installation options #

p03.png

p04.png

p05.png

[編集]

Service configuration #

p06.png

p07.png

p08.png

p09.png

[編集]

Initialize database cluster #

p10.png

p11.png

[編集]

Enable procedural languages #

p12.png

  • PL/perl は有効になるのかな? Active Perl を入れればよいのかな?
    • ActivePerl-5.8.4.810-MSWin32-x86.msi いれたら、PL/perl, PL/perl (untrusted) が 選択できるようになった。(2004-09-26)
      • PL/perl (untrusted) を入れると、initdb で失敗する。
[編集]

Ready to install #

p13.png

[編集]

Installing... #

p14.png

p15.png

[編集]

Installation complete! #

p17.png

[編集]

Subscripbe to pgsql-announce ボタンを押すと #

p18.png

[編集]

スタートメニュー #

p19.png

[編集]

ディレクトリ構成 #

p20.png

[編集]

bin の内容 #

C:\Program Files\PostgreSQL\8.0-beta2-dev3\bin>dir /w
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は C4AD-1BB0 です

 C:\Program Files\PostgreSQL\8.0-beta2-dev3\bin のディレクトリ

[.]                  [..]                 clusterdb.exe
createdb.exe         createlang.exe       createuser.exe
dropdb.exe           droplang.exe         dropuser.exe
ecpg.exe             findoidjoins.exe     initdb.exe
libpq.dll            pgperm.bat           pg_autovacuum.exe
pg_config.exe        pg_controldata.exe   pg_ctl.exe
pg_dump.exe          pg_dumpall.exe       pg_resetxlog.exe
pg_restore.exe       postgres.exe         postmaster.exe
psql.exe             vacuumdb.exe
              24 個のファイル           7,838,985 バイト
               2 個のディレクトリ   2,276,073,472 バイトの空き領域
[編集]

サービス #

p21_0.png

  • インストールが完了すると、サービスも起動されている。
[編集]

接続 #

[編集]

psql #

「プログラム(P)」→「PostgreSQL 8.0-beta-dev3」→「psql to template1」
あるいは、

C:\Program Files\PostgreSQL\8.0-beta2-dev3\bin>psql -U postgres template1
Password:
Welcome to psql 8.0.0beta2, the PostgreSQL interactive terminal.

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

template1=# select version();
                                                 version

-------------------------------------------------------------------------------
---------------------------
 PostgreSQL 8.0.0beta2 on i686-pc-mingw32, compiled by GCC gcc.exe (GCC) 3.2.3 
(mingw special 20030504-1)
(1 row)

template1=# \q
C:\Program Files\PostgreSQL\8.0-beta2-dev3\bin>
[編集]

CSE #

CSE ver1.59 を入手、展開してそのディレクトリに C:\Program Files\PostgreSQL\8.0-beta2-dev3\bin\libpq.dll をコピー、で起動。

(CSE ver 1.60b2は試していない)

「データベース(D)」→「接続(C)...」で

[添付]

[添付]

繋がらない。

C:\Program Files\PostgreSQL\8.0-beta2-dev3\data\pg_log のログファイルを見る。

2004-09-20 21:09:28 東京 (標準時) LOG:  database system is ready
2004-09-20 21:14:33 東京 (標準時) FATAL:  database ""template1"" does not exist

psql で、わざとデータベース名を間違えてみる。

C:\Program Files\PostgreSQL\8.0-beta2-dev3\bin>psql -U postgres template2
psql: FATAL:  database "template2" does not exist

再度、ログファイルを確認。

2004-09-20 21:15:51 東京 (標準時) FATAL:  database "template2" does not exist

データベース名の前後の"が1つ余分にある。これが原因?

手持ちの古い libpq.dll (6.5.0.0) を入れてみると、繋がる。 で、ここで、わざとデータベース名を間違えてみると、ログファイルはこうなる。

2004-09-20 21:28:08 東京 (標準時) FATAL:  database "template2" does not exist

つまり、libpq.dll の動作に互換性がない?

原因を調べるには、

  • 他のホストに入れてパケットをキャプチャしたり、
  • ログ出力内容を増やしたり(postgresql.conf)、
  • libpq.dll のソースコードを比較したり、
  • libpq.dllのMockを作ってCSEが渡している引数を調べれば
  • (CSEはフリーウェアだが、オープンソースではない。また、ライセンス(license.txt)に よると逆コンパイル、逆アセンブルを禁止しているので、CSEのソースコードを あたることはできない)

などで原因がわかるだろうが、今のところ追求してない。

[pgsql-jp: 34348] Re: (解決)Re: LAN 内のpostgresql のTCP/IP接続について

http://ml.postgresql.jp/pipermail/pgsql-jp/2004-November/017908.htmlついて