我有PSQL运行,并试图得到一个perl应用程序连接到数据库。是否有命令来查找数据库正在运行的当前端口和主机?


当前回答

SELECT *
FROM pg_settings
WHERE name = 'port';

其他回答

选择inet_server_port ();提供服务器的端口。

postgresql端口在postgresql.conf文件中定义。

对我来说,Ubuntu 14.04的目录是:/etc/postgresql/9.3/main/postgresql.conf

里面有一行字:

port = 5432

修改该数字需要重新启动postgresql才能生效。

@ a_horis_with_no_name答案的补充。 获取主机名:

SELECT boot_val,reset_val FROM pg_settings WHERE name='listen_addresses';;
SELECT CURRENT_USER usr, :'HOST' host, inet_server_port() port;

这里使用了psql内置的HOST变量

和postgres系统信息函数,文档在这里

选择inet_server_addr ();提供服务器的IP地址。