PSQLコマンドを使用してホスト名とポートを見つける


150

PSQLを実行していて、Perlアプリケーションをデータベースに接続しようとしています。データベースが実行されている現在のポートとホストを見つけるコマンドはありますか?

回答:


57

デフォルトのPostgreSQLポートは5432です。データベースが動作しているホストは、ホスティングプロバイダーから提供されている必要があります。ホストが指定されていない場合は、Webサーバーと同じホストになると思います。通常、Webサーバーとデータベースサーバーが同じホスト上にあると想定して、これはlocalhostとして構成されます。


私もこの問題に遭遇し、5433ポートを試してみましたが、これは機能しています
Jonny Manowar

5
これは実際には質問の答えにはなりません。
sk

@skコンテキストを読み取ります。OPは、postgresデータベースのホストとポートを知りませんでした。彼らは基本的なpsqlコマンドで接続できるので、それはを意味しlocalhost:5432ます。誰かがenv vars / aliases / etcで巧妙にならない限り。10年後の私の答えは好きではありませんが、yではなくx解くことは完全に問題なく、この場合、何百人もの人々を助けてきました。
Brad Koch

227
SELECT *
FROM pg_settings
WHERE name = 'port';

2
残念ながら、同じクラスターに複数のサーバーがある場合、これは機能しません...
Vitor Baptista

2
これにより、実際にはサーバーホストではなくポート番号がわかります。
hd1 2013年

2
@ hd1:そして?問題は(また)ポート番号を取得する方法でした。そして、それはクエリが返すものです。
a_horse_with_no_name 2013年

はい。ただし、データベースに接続できない場合は実行できません:P
jaydel

137

このコマンドは、postgresポート番号を提供します

 \conninfo

Linuxサーバーでpostgresが実行されている場合は、次のコマンドも使用できます。

sudo netstat -plunt |grep postgres

または(ポストマスターとして提供される場合)

sudo netstat -plunt |grep postmaster

これと同じようなものが表示されます

tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      140/postgres
tcp6       0      0 ::1:5432                :::*                    LISTEN      140/postgres

この場合、ポート番号は5432であり、これもデフォルトのポート番号です。

クレジットリンク


1
それは5432のためのポストマスターとして来ている
codebased

4
これが正解です。選ばれた答えは真実ですが、質問とは関係ありません。
Luis Martins

42

select inet_server_addr(); サーバーのIPアドレスを提供します。


2
残念ながら、sshプロキシ経由で接続している場合、これは「ライブ」ホスト名を提供しません-私は "127.0.0.1"を取得し続けます
Andrew Wolfe

8
何も得られなかった:$postgres=# select inet_server_addr(); inet_server_addr ------------------ (1 row)
trex

ホスト名を
明かさ

15

select inet_server_port(); サーバーのポートを提供します。


3
bluehostでは、実際にはポートが5432だった場合、このクエリは空白のフィールドを返します。このクエリは常にポート番号を返すとは限りません。
Eric Leschinski、2015


12

これは非SQLメソッドです。手順は画像自体に記載されています。情報を検索するサーバーを選択して、手順に従います。

ここに画像の説明を入力してください


9

postgresqlポートは、 postgresql.confファイルにます。

Ubuntu 14.04の私にとってはそれは: /etc/postgresql/9.3/main/postgresql.conf

内部には行があります:

port = 5432

そこで数を変更すると、postgresqlを再起動して有効にする必要があります。


5

\conninfo 取得するpsqlでコマンドを使用できますYou are connected to database "your_database" as user "user_name" on host "host_name" at port "port_number".


3

ターミナルからできること:

\ conninfo

以下を使用して、すべてのコマンドの完全なリストに関するドキュメントを読むことをお勧めします。

\?


0

「ターミナル」に行き、単にタイプしてください

service postgres status

結果では、ポートの詳細を取得できますpostgresの詳細の実行

私の場合、ポート "5432"(デフォルト)で実行されています。
CentOS 7を使用しています。


0
SELECT CURRENT_USER usr, :'HOST' host, inet_server_port() port;

これは、psqlの組み込みのHOST変数を使用します。

そして、ここに記載されている postgresシステム情報関数


ローカルに接続している場合はHOST、UNIXドメインソケットが存在するディレクトリになります/tmp
ビショップ

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