PostgreSQL学習の——インストール編(Windows XP)


最初の日記を2年以上書いた後にまたこれらに来て第2編を書くとは思わなかった.最近JAVAの研究を始めた後、JAVAEYEのブログをよく購読したので、ここに私の「2ムー3分の土地」がずっと暇だったことを覚えているかもしれない.ずっと気にかけていた以上、いっそ行動して、この「土地」に「食糧」を植えたほうがいい.では今日は何か書きましょう.でもJAVAではなく、データベースシステム、postgreSQLです.
 
数年前にpostgreSQLをインストールしたことがあるのを覚えています.8.1版のようで、中国語のドキュメントをダウンロードしたことがありますが、新鮮なものを食べただけでもう使いません.先日私の机の中にまだあることを発见して、そこでホームページの上で最新の8.4.1-1版をダウンロードしました.しかし、前回使用したインストール版とは異なり、私が今回ダウンロードしたのは非インストール版で、ZIPファイルです.解凍してD:Developmentpostgresql-8.4.1-1ディレクトリの下に置いて、postgeSQLの構成と起動方法を勉強しました.
 
docフォルダのドキュメントを見て、ネットでいくつかの文章を検索して、やっと少し感じました.postgresqlを使用してデータベースを作成するには、データベース・ストレージ領域(database clusterと呼ばれる領域)を初期化し、データベース・サーバを起動し(システム・サービスに登録して起動することもできます)、最後にデータベースを作成してデータベースに入り、さまざまなSQL操作を行うことができます.この手順では、postgresqlインストールディレクトリのbinフォルダのコマンドを実行する必要があります.これらのコマンドを簡単に使用するために、PATH環境変数を設定できますが、以前インストールしたpostgresqlディレクトリにpgenv.batがあり、環境変数を設定するために使用されていることに気づきました.私の新しいバージョンにはこのファイルがありません.そこで、このファイルをコピーしました.このバッチ・ファイルの内容は次のとおりです.
set PGHOME=D:\Development\postgresql-8.4.1-1
set PATH=%PGHOME%\bin;%path%
set PGHOST=localhost
set PGLIB=%PGHOME%\lib
set PGDATA=F:\sqldata\pgdata
 
ここでPGDATAはdatabase clusterのストレージパスであり、このパスは設定せずにdatabase clusterを作成するときに指定することもできます.まずコマンドラインインタフェースに入ってこのバッチを実行すると、次の作業ができます.
 
まずdatabase clusterを確立し、コマンドラインに入力します.
initdb -D F:\sqldata\pgdata --no-locale -U administrator
 
ここで、-Dオプションはdatabase clusterのストレージパスを指定するために使用されます.このパスは既に存在する必要があります.PGDATA環境変数が設定されている場合は、ここでは省略できます.--No-localeオプションは、--locale=C、すなわち領域を使用しないことに等しく、もともと--locale=chs、すなわち「簡体字中国語」を使用しようとしたが、後で符号化の問題が発生したので使用しなかった.-U administratorスーパーユーザーの名前を指定します.ここでは文字コードは指定されていませんが、デフォルトではSQL_が使用されます.ASCIIは、UTF 8に指定したい場合はオプション--encoding=utf 8または-E utf 8を使用することができますが、私はこのオプションを使用した後に漢字を挿入する際にエラーが発生したので、いっそ使用しないでください.この問題はここではしばらく取り上げません.コマンドが実行中にエラーがない場合は、実行が完了したら次のステップに進むことができます.
 
ステップ2でデータベース・サーバを起動し、次のように入力します.
pg_ctl -D F:/sqldata/pgdata start

 
postgresコマンドを使用してデータベース・サーバを起動することもできますが、postgresアカウントで実行する必要があるため、pg_を使用することを選択しました.ctl.データベース・サーバを停止または再起動する場合は、次のように入力します.
pg_ctl stop
pg_ctl restart -D F:/sqldata/pgdata
 
データベース・サーバをシステム・サービスに登録することもできます.登録と逆登録のコマンドは次のとおりです.
pg_ctl register -N pgsql -U <     > -P <    > -D F:/sqldata/pgdata
pg_ctl unregister -N pgsql

 
ここで-N pgsqlはサービスの名前を指定し、-Uと-Pはサービスのアカウント名とパスワードを指定します.問題がなければ、次にデータベースを作成できます.
 
ステップ3でデータベースを作成し、コマンドラインに入力します.
createdb --username=administrator mydb
 
これはmydbという名前のデータベースを作成し、dropdbコマンドを使用してデータベースを削除します.作成が完了すると、psqlコマンドを使用してデータベースに接続できます.コマンドは次のとおりです.
psql --username=administrator mydb
psql (8.4.1)
Type "help" for help.

mydb=#

 
最後の行「mydb=#」というプロンプトが表示されると、データベースに正常にログインし、さまざまなSQLコマンドを実行できることを示します.
 
ここで説明する必要があるのは、以前のバージョンのpostgresqlでは管理者権限のあるアカウントを使用してサーバを起動することは許可されていませんでした.これは安全のためですが、8.2版からこの制限が解除されました.私にとってはまだ初心者の段階なので、しばらくこの問題を考えていません.
 
これでpostgresqlは私のパソコンに「安家定住」して、次からゆっくり勉強できますが、私が最初に出会った問題は、漢字をデータテーブルに挿入できないことです.これは私が「chs」を領域として、「utf 8」を符号化として使っていたときに現れたので、database clusterを作成しようとしたときに領域も符号化も指定していませんでした.逆に漢字を普通に挿入できるようになりましたし、並べ替えにも問題はないようですが、なぜか分かりません.