当前位置: 首页 > 知识库问答 >
问题:

NixOS错误:psql:fatal:角色“postgres”不存在

彭博厚
2023-03-14

我试图在NixOS上使用postgresql,在运行$psql-u Postgres时遇到以下错误

$ psql -U postgres
psql: FATAL:  role "postgres" does not exist

当使用默认用户(我的用户名)简单地运行$psql时,我会遇到类似的错误。似乎我的postgres安装没有可以用来创建其他角色或运行任何命令的角色。

services.postgresql.enable = true;
services.postgresql.package = pkgs.postgresql94;

我还按照本示例配置中的建议添加了postgres身份验证,因此/etc/nixos/configuration.nix文件的postgresql行如下所示

  # 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
    '';

共有1个答案

董花蜂
2023-03-14

在NixOS中,当数据库集群初始化时(使用Postgres的initdb),数据库超级用户被设置为root,而不是默认的Postgres。所以psql-u root应该能做到这一点。

 类似资料: