PostgreSQL on Windows Server 2022

Published by

on

Windows Server 2022上でのPostgreSQLのセットアップを行う手順を整理します。

項目バージョン
OSWindows Server 2022 評価版
PostgreSQL16.4

■ダウンロードとインストール

https://www.postgresql.org/download/windows/ へアクセスしてダウンロードを行います。

2024/8/28時点の最新であるバージョンが「16.4」のWindows x86-64を選択します。

ダウンロードできたらダブルクリックでインストールを開始します。

「Next」をクリック。

インストールフォルダを指定します。ここではデフォルトのままとします。

インストールするコンポーネントを指定します。「PostgreSQL Server」と「Command Line Tools」は必須と思います。「pgAdmin 4」ツールはGUIで便利なDB管理者用ツールなので選択をします。

データの保存先を指定します。デフォルトはインストールフォルダ配下の「data」フォルダとなります。

管理者ユーザ「postgres」のパスワードを設定します。

PostgreSQLが待ち受けするポートを指定します。ここではPostgreSQLデフォルトの「5432」のままとします。

言語環境等のロケール設定を指定します。明示的に「日本語」を示すものを選択してもよいですが、デフォルト選択されている「Default locale」のままとします。

インストール内容のサマリを確認し、Nextをクリック。

「Next」クリックでインストールを開始します。

しばらくしてインストールが完了します。

Windowsスタートメニューに下記の通りPostgreSQL関連の表示がされました。

■psql用設定と管理者ユーザ「postgres」での接続確認

コマンドラインツール「psql」を用いるための準備を行います。コマンドプロンプトから実行できるようにするために環境変数「PATH」にインストールディレクトリ「C:\Program Files\PostgreSQL\16\bin」を追加します。設定後、コマンドプロンプトを開いて「psql –version」でバージョンが表示されればOKです。

インストール時に作成した管理者ユーザ「postgres」で接続してみます。「-h」オプションは接続先ホストを指定し、「-U」で接続に用いるユーザを指定します。接続後、表示が「postgres=#」となれば接続ができている状態となります。

psql -h localhost -U postgres

終了は「\q」と入力して行います。

以下にpsqlツールのコマンドを整理しているので参考にしてみてください。

■PostgreSQLサーバホスト外からアクセスを許可する

PostgreSQLデータベースをデータベースを構築したサーバ以外からアクセスさせるために必要な設定を行います。この記事ではWindows環境での手順ですが、Linux系でも考え方は同じです。

デフォルトではlocalhost以外からのアクセスができないようになっており、DBサーバ以外からのアクセスのためには以下の作業が必要となります。

  1. pg_hba.confの修正
  2. サービスの再起動
  3. OSのファイアウォールの許可
  4. 接続確認

▼pg_hba.confの修正

ここでは「192.168.0.0/16」のネットワークからであればすべてのホスト、データベース、ユーザに接続を許可する、という設定としました。

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             192.168.0.0/16            scram-sha-256

▼PostgreSQLデータベースサービスの再起動

Windowsの場合、サービス画面から起動をすればOKなのでわかりやすいです。

▼ファイアウォール設定でポートの許可

PostgreSQLで利用するポートを外部ホストから許可します。以下はWindowsでの例です。5432のポートで待ち受けしているのでそこへの接続を許可してやればOKです。

TCPの5432です。

PostgreSQL側でホストの範囲を指定していますが、Windowsのファイアウォールでも同様の設定ができます。(ここではホスト指定はしない形としています)

▼接続確認

PostgreSQLデータベース以外のホストからDBツールやアプリケーションから接続を確認します。

GUIのDBツールも豊富にあるので、助かります。参考までに私はA5:SQL Mk2やDBeaverというツールを使っています。

A5:SQL Mk2 : https://a5m2.mmatsubara.com/

DBeaver : https://dbeaver.io/

コメントを残す

Previous Post
Next Post