如何在 postgresql 中获取主机名?

Nir*_*jar 7 postgresql

有什么方法可以在 postgresql 中获取主机名/服务器名,例如 SQL Server 中的 @@ServerName?

Kap*_*ani 5

您需要执行以下查询来获取主机名:

SELECT boot_val,reset_val
FROM pg_settings
WHERE name='listen_addresses';;
Run Code Online (Sandbox Code Playgroud)

  • 好吧,就我而言,它只是返回 `localhost` ;) (5认同)

Dan*_*ité 5

PostgreSQL 不提供返回服务器主机名的内置函数。

用 C 编写的函数pg_gethostname()(POSIX 的包装器gethostname())已在 wiki 上贡献,并作为 PGXN 上的扩展提供:

https://wiki.postgresql.org/wiki/Pg_gethostname

https://pgxn.org/dist/hostname/

如果您无法在服务器上安装它,或者无法在其他语言中安装支持系统调用的等效项(例如 plperlu 或 plpythonu),那么您可能会仅限于inet_server_addr()


Art*_*rty 5

我使用这样的解决方案。无需插件。不需要临时表。仅适用于 UNIX。

select pg_read_file('/etc/hostname') as hostname;
Run Code Online (Sandbox Code Playgroud)

  • 这仅适用于数据库超级用户。 (3认同)