オープンソースのデータベース管理システム「PostgreSQL」(ポストグレスキューエル、通称ポスグレ)をWindows 7にインストールする方法をまとめました。
本手順により、コマンドラインツール「psql」、GUI管理ツール「pgAdmin」も併せてインストールされます。
環境
- OS: Windows 7 Professional (64bit)
- PostgreSQL: 9.5.7
PostgreSQLのダウンロード
下記リンクにアクセスし、PostgreSQLのバージョンと対象OSを選択して[DOWNLOAD NOW]をクリックします。
Download PostgreSQL | EnterpriseDB
- Select your version: PostgreSQL 9.5.7
- Select your operating system: Windows x86-64
[here]をクリックし、「postgresql-9.5.7-1-windows-x64.exe」を任意のフォルダーにダウンロードします。
PostgreSQLのインストール
ダウンロードした「postgresql-9.5.7-1-windows-x64.exe」を右クリックし、[管理者として実行]をクリック。
セットアップの起動後、[Next]をクリック。
PostgreSQLのインストール先を確認し、[Next]をクリック。
デフォルトは「C:\Program Files\PostgreSQL\9.5」です。
データベースと各種設定ファイルの格納先を指定し、[Next]をクリック。今回は「C:\pg」を指定しました。
デフォルトは「C:\Program Files\PostgreSQL\9.5\data」ですが、変更することをおすすめします。 「C:\Program Files」はUACによる保護対象のため設定ファイルの編集に手間がかかりますし、VirtualStoreの影響でファイルの変更が想定通りに反映されない可能性もあります。
データベースのスーパーユーザー(管理者)である「postgres」のパスワードを入力し、[Next]をクリック。
データベースに接続する際のポート番号を指定し、[Next]をクリック。デフォルトは5432です。
データベース作成時のロケールを選択し、[Next]をクリック。
デフォルトは[Default locale]ですが、「C」に変更することをおすすめします。
[Default locale]では通常、"Japanese_Japan.932"というロケールになりますが、「C」と比較して文字列比較やソートのパフォーマンスが悪くなります。
[Next]でインストールを開始します。
上記画面が表示されればインストール完了です。
チェックボックスを外して[Finish]をクリック。
チェックボックスが有効の場合、追加ソフトウェア・ドライバーをインストールするための「スタックビルダ」が起動しますが、後から手動で起動することもできます。
環境変数Pathの設定
前述のインストールだけでは環境変数Pathが設定されないため、psqlなどをコマンド名のみで実行することはできません。
psql --version 'psql' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
今回はコマンドプロンプトでPathを追加します。
まず最初に、下記コマンドで現在のシステム環境変数「Path」をユーザー環境変数「PathBackup」にバックアップします。
setx PathBackup -k "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path"
「成功: 指定した値は保存されました。」と表示されれば正常に保存されています。
上記の値を反映するためコマンドプロンプトを一度終了し、今度は管理者用コマンドプロンプト(右クリックして「管理者として実行」)で下記コマンドを実行します。
setx /M Path "%PathBackup%;C:\Program Files\PostgreSQL\9.5\bin"
※インストール先・バージョンはお使いの環境に合わせてください。
「成功: 指定した値は保存されました。」と表示されればPathの追加は完了です。
コマンドプロンプトを再起動し、psqlを実行してみます。
psql --version psql (PostgreSQL) 9.5.7
pg_hba.confの設定
データベースに対して接続を許可するホストを設定します。
設定ファイルは「pg_hba.conf」(host-based authentication: ホストベース認証)で、インストール時に指定したデータ格納先に存在します。(今回の例ではC:\pg)
デフォルトではローカル(127.0.0.1)のみ許可されており、他のPCやサーバーからは接続できません。
# TYPE DATABASE USER ADDRESS METHOD # IPv4 local connections: host all all 127.0.0.1/32 md5
LAN内のMac(192.168.1.xxx)から接続を試みたところ、次のエラーメッセージが表示されました。
psql -h 192.168.1.yyy -p 5432 -d postgres -U postgres psql: FATAL: no pg_hba.conf entry for host "192.168.1.xxx", user "postgres", database "postgres", SSL off
接続を許可するためには、pg_hba.confに次の行を追加します。
host all all 192.168.1.xxx/32 md5
※「192.168.1.xxx」には接続元のIPアドレスを指定してください。
pg_hba.confの詳しい設定方法については、下記リンク先をご確認ください。
https://www.postgresql.jp/document/pg954doc/html/auth-pg-hba-conf.html
まとめ
PostgreSQLのインストール手順について解説しました。
簡単な手順で本格的なデータベース環境が構築できます。
データベースやPostgreSQLに興味のある方は、是非一度試してみてください。
今後、PostgreSQLを学習・運用する過程で新たに必要な設定が見つかり次第、内容を追加していきます。