psql: FATAL: Peer authentication failed for user "postgres"
nixos では、次のエラーのような postgres エラーが発生します。この問題答えに記載されているように、問題を解決するために認証設定を編集したいと思います。
Pgがパスワード認証を許可するように、Unixソケット(ローカル接続タイプ)のピア認証の代わりにmd5パスワード認証を使用するようにpg_hba.confを編集します。
pg_hba.conf
このファイルの認証設定を編集して、Ubuntuで以前と同じエラーを解決しました。しかし今私の問題はpg_hba.conf
nixosにはそのようなエディタがないようです。
nixosで対応するpostgres認証設定を変更するには?
私は気づいたこれgithubのpostgres.nixファイルには何かをしているように見えるか、少なくともpg_hba.conf
その文字列が含まれていますが、認証設定を変更する方法を理解できません。また、私は1つの基本設定ファイルしか使用していません/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
'';