デフォルトでPostgreSQLがポート5432で待機することを知っていますが、実際にPostgreSQLのポートを決定するコマンドは何ですか?
Configuration: Ubuntu 9.10とPostgreSQL 8.4
lsofとnmapは解決策ですが、デフォルトではインストールされません。必要なのはnetstat(8)です。
Sudo netstat -plunt |grep postgres
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サーバーとともにインストールされます。
データベース内から実行したい場合は、 "SHOW port"を実行してください。しかし、それは、少なくともローカルでそれに接続できることを前提としています...
ローカルマシンで検索している場合は、lsofコマンドを使用して、postgresqlが使用しているポートを確認します
lsof -p <postgres_process_id>
複数のpostgresインスタンスが実行されているマシンを使用しているため、正しいデータベースと各ポートを一致させようとする問題もあります。私はする傾向があります:
$ ps aux | grep postgres | grep -v 'postgres:'
そして、返された各インスタンスについて、ディレクトリ(-D
引数)および:
$ Sudo grep port $DIR/postgresql.conf
これが私が見つけた1つの解決策です:
Sudo apt-get install nmap
Sudo nmap localhost | grep postgresql
ローカル以外のマシンを検索する場合は、localhost
をサーバーのIPアドレスに変更します。