我想找出Postgresql的安装位置,需要对postgresql.conf和pg_hba.conf文件进行一些更改并重新启动Postgresql。
有没有办法识别安装目录,适用于Windows/Unix/Linux?任何帮助或建议将不胜感激。
最佳答案
询问 PostgreSQL:
SHOW config_file;
SHOW hba_file;
或者:
SELECT current_setting('config_file');
SELECT current_setting('hba_file');
当然,这需要 PostgreSQL 正在运行、监听 TCP/IP 和默认端口。它还要求您能够进行身份验证。您需要提示用户输入端口(默认为 5432)和凭据。
没有通用方法可以在不询问正在运行的 PostgreSQL 实例的情况下确定 PostgreSQL 数据目录位置,因为:
- 可能有多个正在运行的 PostgreSQL 实例
- Mac OS X 上的 PostgreSQL 可能是通过 Homebrew (Mac OS X)、Postgres.app (Mac OS X)、系统包管理 (Linux)、ports (BSD)、EnterpriseDB 安装程序、各种第 3 方汇总安装的发行版、.zip 二进制文件或来自源代码。
- PostgreSQL 可以从 launchd (Mac OS X)、作为 Windows 服务 (Windows)、从 systemd/upstart/init (Linux/BSD) 启动并运行,由用户使用 pg_ctl 手动启动和运行等。可以在启动命令行中指定数据目录。
因此,您可以找出 PostgreSQL 数据目录“位置”的整个想法都是假的。
如果您正在编写依赖于 PostgreSQL 的软件,请考虑将您自己的副本与 .zip 二进制文件捆绑在一起,使用 pg_ctl
启动它并在非默认端口上运行它,这样就不会出现问题。干扰用户可能自己在系统上安装的任何 PostgreSQL。
关于java - 使用Java查找Postgresql安装位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12892532/