在 nixos 上,我遇到psql: FATAL: Peer authentication failed for user "postgres"
类似以下错误的postgres 错误这个问题,并且想要编辑身份验证设置来解决问题,如答案中所述:
编辑 pg_hba.conf 以使用 md5 密码身份验证而不是 unix 套接字(本地连接类型)的对等身份验证,以便 Pg 接受密码身份验证
pg_hba.conf
我之前在 ubuntu 上通过编辑该文件中的授权配置解决了同样的错误。但我现在的问题是nixos 似乎没有这样的pg_hba.conf
编辑。
如何在nixos中进行相应的postgres授权配置更改?
我注意到这github 上的 postgres.nix 文件似乎对 做了一些事情pg_hba.conf
,或者至少包含该字符串,但我不明白如何从中更改我的身份验证设置。另外,我只使用了一个主要配置文件/etc/nixos/configuration.nix
,这似乎是一个单独的模块,位于nixos/modules/services/databases/postgresql.nix
.
答案1
按照此配置示例,我设置了NixOS选项services.postgresql.authentication
。
/etc/nixos/configuration.nix
当我的 postgres 部分设置为时,我设法克服了“对等身份验证失败”错误
# postgres
services.postgresql.enable = true;
services.postgresql.package = pkgs.postgresql94;
services.postgresql.authentication = lib.mkForce ''
# Generated file; do not edit!
# TYPE DATABASE USER ADDRESS METHOD
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
'';