Configuration

如何在 nixos 中配置 postgres 的授權設置?

  • July 15, 2017

在 nixos 上,我遇到了與此問題psql: FATAL: Peer authentication failed for user "postgres"類似的 postgres 錯誤,並希望編輯身份驗證設置以解決該問題,如那裡的答案中所述:

編輯 pg_hba.conf 以對 unix 套接字(本地連接類型)使用 md5 密碼身份驗證而不是對等身份驗證,因此 Pg 接受密碼身份驗證

我之前在 ubuntu 上通過編輯該pg_hba.conf文件中的授權配置解決了同樣的錯誤。但我現在的問題是,nixos 似乎沒有這樣的pg_hba.conf編輯。

如何在nixos中進行相應的postgres授權配置更改?

我注意到github 上的這個pg_hba.confpostgres.nix 文件似乎與,或至少包含字元串,但我不明白如何更改我的身份驗證設置。此外,我只使用了一個主配置文件/etc/nixos/configuration.nix,這似乎是一個單獨的模組,位於nixos/modules/services/databases/postgresql.nix.

按照這個範例配置,我設置了 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
   '';

引用自:https://unix.stackexchange.com/questions/378711