2012-08-12 22 views
1

我正在运行OSX,我试图在pg_hba.conf文件中更改PostgreSQL身份验证选项。问题是我无法进入它。我试过无法输入和更改PostgreSQL pg_hba.conf文件

sudo su - postgres 

然后用vi试着编辑它。当我用vi打开文件时,vi显示为一个新文件,只显示波浪线。如果我尝试写入新文件,则会出现错误,说我无法这样做。

请帮帮忙,谢谢

这是我的目录:

$ sudo find/-name pg_hba.conf 
Password: 
find: /dev/fd/3: Not a directory 
find: /dev/fd/4: Not a directory 
/Library/PostgreSQL/9.1/data/pg_hba.conf 

回答

8

在猜测,你已经尝试过编辑在实际上并不存在的目录中的文件,因为路径上你的系统是不同的。如果您显示了您运行的确切命令,确切的错误消息文本,PostgreSQL版本以及您如何安装Pg(Homebrew,EnterpriseDB软件包等),它会有所帮助。

编辑pg_hba.conf

在psql里,运行:

SHOW hba_file; 

,看看它报告什么位置。这是你必须编辑的文件。如果您无法进入psql,则必须将其找到文件系统中;尝试:

sudo find/-name pg_hba.conf 

当您找到正确的路径,则不需要使用supostgres登录编辑;只需使用:

sudo vim /path/to/pg_hba.conf 

例如,我的系统上:

sudo vim /var/lib/pgsql/data/pg_hba.conf 

如果你喜欢使用不同的编辑器,任何可以从命令行运行应该工作,包括最GUI编辑器。

+0

感谢克雷格,我设法进入它神清气爽地改变它。这正是我以前认为的地方,但我真的很为我之前为何无法进入而感到愤怒。你虽然救了我。谢谢! – 2012-08-12 05:15:04

+0

@A_funs很高兴解决。与Pg玩得开心。顺便说一句,你可以通过发布确切的命令行,精确的复制粘贴的错误信息等来保存一些来回的信息;这使得第一次写出一个很好的答案变得更容易。 – 2012-08-12 05:16:45

1

您可以用这种方式

sudo vi /etc/postgresql/9.1/main/pg_hba.conf