web-dev-qa-db-ja.com

PostgreSQLのポートの決定

デフォルトでPostgreSQLがポート5432で待機することを知っていますが、実際にPostgreSQLのポートを決定するコマンドは何ですか?

Configuration: Ubuntu 9.10とPostgreSQL 8.4

12
Matthew Rankin

lsofとnmapは解決策ですが、デフォルトではインストールされません。必要なのはnetstat(8)です。

Sudo netstat -plunt |grep postgres
26
ptman

PostgreSQLユーティリティpg_lsclustersは、ポート番号を含む、すべてのクラスターの構成とステータスに関する情報を表示します。

$ pg_lsclusters
Version Cluster   Port Status Owner    Data directory                     Log file
8.4     main      5433 online postgres /var/lib/postgresql/8.4/main       /var/log/postgresql/postgresql-8.4-main.log

これには、実行に「Sudo」権限を必要としないという利点もあります。

DebianおよびUbuntuシステムでは、pg_lsclustersコマンドはpostgresql-commonパッケージによって提供されます。これは、デフォルトでpostgresqlサーバーとともにインストールされます。

6
Dan Stangel

データベース内から実行したい場合は、 "SHOW port"を実行してください。しかし、それは、少なくともローカルでそれに接続できることを前提としています...

2
Magnus Hagander

ローカルマシンで検索している場合は、lsofコマンドを使用して、postgresqlが使用しているポートを確認します

lsof -p <postgres_process_id>
1
Dominik

複数のpostgresインスタンスが実行されているマシンを使用しているため、正しいデータベースと各ポートを一致させようとする問題もあります。私はする傾向があります:

$ ps aux | grep  postgres | grep -v 'postgres:'

そして、返された各インスタンスについて、ディレクトリ(-D引数)および:

$ Sudo grep port $DIR/postgresql.conf
1
Joe H.

これが私が見つけた1つの解決策です:

Sudo apt-get install nmap
Sudo nmap localhost | grep postgresql

ローカル以外のマシンを検索する場合は、localhostをサーバーのIPアドレスに変更します。

0
Matthew Rankin