无法输入和更改PostgreSQL pg_hba.conf文件

A_f*_*uns 2 postgresql vi terminal

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

sudo su - postgres
Run Code Online (Sandbox Code Playgroud)

然后使用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
Run Code Online (Sandbox Code Playgroud)

Cra*_*ger 9

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

编辑pg_hba.conf:

在psql中,运行:

SHOW hba_file;
Run Code Online (Sandbox Code Playgroud)

并查看它报告的位置.那是你必须编辑的文件.如果你无法进入,psql你必须在文件系统中找到它; 尝试:

sudo find / -name pg_hba.conf
Run Code Online (Sandbox Code Playgroud)

当您找到正确的路径时,您无需使用supostgres登录中进行编辑; 只需使用:

sudo vim /path/to/pg_hba.conf
Run Code Online (Sandbox Code Playgroud)

例如在我的系统上:

sudo vim /var/lib/pgsql/data/pg_hba.conf
Run Code Online (Sandbox Code Playgroud)

如果您更喜欢使用不同的编辑器,那么可以从命令行运行的任何东西都可以使用,包括大多数GUI编辑器.