私のPostgreSQLのデフォルトポートは5432ですが、Windows 7のコマンドラインを使用してデフォルトポートを変更します。
以前にこのソリューションを見ました: https://stackoverflow.com/questions/187438/want-to-change-pgsql-port
次のコマンドを実行しようとしましたが、失敗しました:
postgres --p 5431
コマンドラインを使用してポートを変更する方法を誰かに教えてもらえますか?
Windowsを使用していて、おそらくPostgreSQLをWindowsサービスとして開始しているため、postgresql.conf
(データディレクトリ内)を編集して新しいポートをそこに設定し、[サービス]コントロールパネルを使用してpostgresqlサービスを再起動する必要があります。または(管理者として)net service
コマンド。
これを自動化する必要がある場合は、プログラムによるテキスト編集ツールを使用してpostgresql.conf
を変更できます。 Linux/unixボックスではsed
やawk
などのツールを使用しますが、WindowsではVBS、powershell、Perlなどのアドオンツールを使用することを想像しています。
新しいポートを使用するには、PgAdmin-III
などのツールで接続設定を変更する必要があります。
pg_ctl
を使用して手動でPostgreSQLを起動する場合は、PGPORT
環境変数を設定するか、コマンドラインで構成オプションを渡すことができます。これは、Windowsサービスとして起動する場合は機能しません。
パラメータが設定されているかどうかは、クエリツールで確認できます。 show port
クエリ。現在のポート番号が表示されます。 pgAdminを使用してdbに接続している場合は、接続設定でポート番号を変更したことを確認してください。
テキストの置換や同様の手法を必要としないソリューションは、別の構成ファイルで異なるポートを構成してから、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
で行われたポート構成はすべて、カスタム構成ファイルの設定で上書きされます。