web-dev-qa-db-ja.com

コマンドラインを使用したPostgreSQLポートの変更

私のPostgreSQLのデフォルトポートは5432ですが、Windows 7のコマンドラインを使用してデフォルトポートを変更します。

以前にこのソリューションを見ました: https://stackoverflow.com/questions/187438/want-to-change-pgsql-port

次のコマンドを実行しようとしましたが、失敗しました:

postgres --p 5431

コマンドラインを使用してポートを変更する方法を誰かに教えてもらえますか?

10
Nick Hung

Windowsを使用していて、おそらくPostgreSQLをWindowsサービスとして開始しているため、postgresql.conf(データディレクトリ内)を編集して新しいポートをそこに設定し、[サービス]コントロールパネルを使用してpostgresqlサービスを再起動する必要があります。または(管理者として)net serviceコマンド。

これを自動化する必要がある場合は、プログラムによるテキスト編集ツールを使用してpostgresql.confを変更できます。 Linux/unixボックスではsedawkなどのツールを使用しますが、WindowsではVBS、powershell、Perlなどのアドオンツールを使用することを想像しています。

新しいポートを使用するには、PgAdmin-IIIなどのツールで接続設定を変更する必要があります。

pg_ctlを使用して手動でPostgreSQLを起動する場合は、PGPORT環境変数を設定するか、コマンドラインで構成オプションを渡すことができます。これは、Windowsサービスとして起動する場合は機能しません。

9
Craig Ringer
  • ..\PostgreSQL\9.0\dataに移動し、テキストエディター/メモ帳でファイルpostgresql.confを開きます
  • ポートパラメータ.egを検索:ポート= 5433
  • これをポート番号に編集します。
  • タイプservices.mscを実行し、postgresqlサービスを再起動します。

パラメータが設定されているかどうかは、クエリツールで確認できます。 show portクエリ。現在のポート番号が表示されます。 pgAdminを使用してdbに接続している場合は、接続設定でポート番号を変更したことを確認してください。

7
shamseer pc

テキストの置換や同様の手法を必要としないソリューションは、別の構成ファイルで異なるポートを構成してから、includeディレクティブをpostgresql.confファイルに追加することです。

例えば.

echo port = 5431 > \path\to\datadir\custom.conf
echo include custom.conf>> \path\to\datadir\postgresql.conf

(もちろん\path\to\datadir\を正しいパスに置き換える必要があります)

最初のechoコマンドは、ポート構成のみを含む新しいファイルを作成します。 2つ目は、既存のpostgres構成ファイルにincludeディレクティブを追加します。 「後の」設定はファイルの「前の」設定を上書きするため、postgresql.confで行われたポート構成はすべて、カスタム構成ファイルの設定で上書きされます。