PostgreSQLのポートの決定


12

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

構成: PostgreSQL 8.4を使用したUbuntu 9.10

回答:


26

lsofとnmapはソリューションですが、デフォルトではインストールされていません。必要なのはnetstat(8)です。

sudo netstat -plunt |grep postgres

Linuxはroute / ifconfig / netstatから移行していると思われます。同等の近代的なコマンドがあるss -plung|grep postgres(注、同じフラグ)
ptman

1
コマンドg用のフラグはもうありませんss。試してください:ss -pa |grep postgresql
GrayedFox

1
@GrayedFoxは更新に感謝しますが、私にとっては番号ではなくポートの名前を与えるので、私ss -pan |grep postgresはより適切だと思います
-ptman

6

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サーバーとともにインストールする必要があります。


3
これpg_lsclustersはUbuntu-ismであり、標準のPostgresコマンドではないことに注意してください。この場合は機能しますが、汎用ソリューションではありません
...-voretaq7

2

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


1

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

lsof -p <postgres_process_id>

これをルートとして実行する必要がある場合があります。
マイケルミオール

1

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

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

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

$ sudo grep port $DIR/postgresql.conf

0

私が見つけた1つの解決策は次のとおりです。

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

非ローカルマシンを検索する場合はlocalhost、サーバーのIPアドレスに変更するだけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.