トラブルシューティングにも役立つ!PostgreSQLのポート番号変更のあれこれ
WindowsにおけるPostgreSQLのリスニングポート変更方法
必要なもの:
- テキストエディタ(メモ帳++など)
- 管理者権限を持つユーザーアカウント
- PostgreSQLサーバーがインストールされているWindowsコンピュータ
手順:
PostgreSQLサーバーを停止する:
postgresql.conf
ファイルを編集する:デフォルトの
postgresql.conf
ファイルは、通常以下の場所にあります。C:\Program Files\PostgreSQL\[バージョン番号]\data\postgresql.conf
テキストエディタで
postgresql.conf
ファイルを開きます。port
という行を見つけ、その後に現在のポート番号が記載されています。 例:port = 5432
このポート番号を、変更したいポート番号に書き換えます。 例:
port = 15432
ファイルを保存します。
注意事項:
- ファイアウォール設定が、新しいポート番号からのアクセスを許可していることを確認してください。
- 変更したポート番号が、他のアプリケーションで使用されていないことを確認してください。
- ポート番号を変更する前に、必ずPostgreSQLサーバーを停止してください。
ポート番号を変更した場合の影響:
- 既存のデータベース接続は、ポート番号変更後に中断される可能性があります。
- PostgreSQLサーバーに接続するために使用するクライアントアプリケーションの設定を変更する必要があります。
- PostgreSQLのインストール方法や設定方法の詳細については、PostgreSQL公式ドキュメントを参照してください。
- 上記の手順は、PostgreSQL 14を使用した場合のものです。他のバージョンを使用している場合は、
postgresql.conf
ファイルの場所や設定項目が異なる場合があります。
-- PostgreSQLのリスニングポートを変更する
-- 現在のポート番号を確認する
SELECT port FROM pg_settings WHERE name = 'port';
-- ポート番号を変更する
ALTER SYSTEM SET port = 5433;
-- 変更を保存する
SELECT pg_reload_conf();
-- PostgreSQLサーバーを再起動する
SELECT pg_restart_system();
- このコードは、PostgreSQLのリスニングポートを5433に変更します。
- 最初のSELECTステートメントは、現在のポート番号を確認するために使用されます。
- 2番目のALTER SYSTEMステートメントは、ポート番号を変更するために使用されます。
- 3番目のSELECTステートメントは、変更を保存するために使用されます。
- 4番目のSELECTステートメントは、PostgreSQLサーバーを再起動するために使用されます。
このコードを使用する例:
-- PostgreSQLサーバーを停止する
service postgresql-14 stop
-- コードを実行する
psql -h localhost -p 5433 -U postgres
-- PostgreSQLサーバーを起動する
service postgresql-14 start
この例では、PostgreSQLサーバーを停止し、コードを実行し、その後サーバーを起動します。 ポート番号が5433に変更されたため、psql
コマンドを実行する際に新しいポート番号を指定する必要があります。
- 上記のコードは、PostgreSQL 14を使用した場合のものです。他のバージョンを使用している場合は、
pg_settings
テーブルの構造やALTER SYSTEM
ステートメントの構文が異なる場合があります。
これは、上記で説明した方法と同じです。 この方法は、設定ファイルを手動で編集することに慣れていて、コマンドラインインターフェースを使用することに抵抗がない場合に適しています。
方法 2: pg_hba.conf ファイルを編集して、特定のクライアントのみが新しいポートを使用できるようにする
この方法は、すべてのクライアントが新しいポートを使用するのではなく、特定のクライアントのみが新しいポートを使用できるようにする場合に適しています。 これを行うには、pg_hba.conf
ファイルに次の行を追加します。
host all all [::1]/128 5433
この行は、すべてのホストからのすべてのユーザーが、IPv6 アドレスを使用してポート 5433 で接続できるように設定します。 IPv4 アドレスを使用する場合は、[::1]
を localhost
に置き換えます。
方法 3: 環境変数 PGPORT
を設定する
この方法は、起動時に PostgreSQL サーバーのポート番号を一時的に変更する場合に適しています。 これを行うには、次のコマンドを実行します。
set PGPORT=5433
postgresql-14
このコマンドは、postgresql-14
コマンドがポート 5433 で PostgreSQL サーバーを起動するように設定します。
方法 4: レジストリエディタを使用してポート番号を変更する
この方法は、Windows レジストリエディタを使用してポート番号を変更することに慣れている上級ユーザー向けです。 これを行うには、次のレジストリキーに移動します。
HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\postgresql-14\Parameters
このキーには、Port
という名前の値があります。 この値をダブルクリックし、新しいポート番号を入力します。
どの方法を選択するかは、ニーズとスキルレベルによって異なります。
- PostgreSQL公式ドキュメント: https://stackoverflow.com/questions/9764126/how-to-configure-postgresql-postgresql-conf-listen-addresses-for-multiple-ip-add
- 上記の方法の説明は、PostgreSQL 14 を使用している場合を想定しています。 他のバージョンを使用している場合は、レジストリキーの名前や設定ファイルの場所が異なる場合があります。
postgresql port