Postgresql: 如何在 Mac OS X 中查找 pg_hba.conf 文件

81

嗨,我在使用Postgres时遇到了麻烦。我忘记了我的Postgres密码,也不知道如何更改密码。我猜想我应该修改我一个月前设置的md5密码设置,但我不知道如何找到文件并在终端中打开它。有人可以帮忙吗?

3个回答

127

我最近学到的另一种方法是打开终端并输入:

ps aux | grep postgres

这将显示在您的计算机上运行的所有postgres进程。从列表中,您应该能够看到一个格式为... -D ...的进程。例如:

root            4155   0.0  0.0  2432908     68   ??  S     6May13   0:00.01 sudo su postgres -c /opt/local/lib/postgresql84/bin/postgres -D /opt/local/var/db/postgresql84/defaultdb -p 5432

-D 表示目录。在终端中,执行 sudo su 命令,然后进入该目录,你会找到 pg_hba.conf 文件。

还有一种方式:

打开终端并输入:locate pg_hba.conf,会得到几个结果。


1
感谢这篇有用的文章,以备将来参考:链接 - Arup Rakshit
5
在最新的Postgres 9.x版本中,它将位于/data/目录中,例如/Library/PostgreSQL/9.4/data/pg_hba.conf。 - UserBSS1
1
在我的 MacBook Air 11.2.3 (2020) 上 - Postgres 10 /Library/PostgreSQL/10/share/postgresql/pg_hba.conf.sample - Gregory Sidh

86
如果您能够连接,使用 SHOW hba_file;
如果您无法连接,则需要找到数据目录。该目录将作为启动 PostgreSQL 的 postgrespg_ctl 命令的 -D 参数显示,因此您通常可以使用ps -ef | grep postgres 找到它。

8
在我的Mountain Lion Mac上,使用EnterpriseDB.com安装程序安装的Postgres 9.2,示例结果为:/Library/PostgreSQL/9.2/data/pg_hba.conf - Basil Bourque
7
针对Mac 10.11,Postgres 11.2 -> /usr/local/var/postgres/pg_hba.conf。 - Vivek
谢谢@BasilBourque,我找到了数据目录,但无法访问。提示没有权限读取数据内容的错误。 - Shark Deng
1
@SharkDeng 为了增强安全性,该目录受到在安装Postgres时创建的用户帐户的控制。该用户通常称为“postgres”,除非您另有指定。 - Basil Bourque

1

对于 macOS 12,您可以在终端中使用 nano 打开文件。下面的示例是如果已安装 Postgres 12。

`nano /Library/PostgreSQL/12/data/pg_hba.conf`

1
不同的用户可能有不同的路径,像这样找到你的路径: sudo psql -U postgres -c 'show hba_file' - Awshaf Ishtiaque

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接