NixOS error: psql: FATAL: role "postgres" does not exist
NixOS error: psql: FATAL: role "postgres" does not exist
我试图在 NixOS 上使用 postgresql,当 运行ning $ psql -U postgres
时遇到以下错误
$ psql -U postgres
psql: FATAL: role "postgres" does not exist
我在 运行ning $ psql
使用默认用户(我的用户名)时遇到了类似的错误。看来我的 postgres 安装没有可用于创建其他角色或 运行 任何命令的角色。
如何为我的 postgres 用户创建一个角色以便我可以发出命令?
我已经用 $ nix-env -i postgres
安装了 postgres 并按照 NixOS manual 配置,添加
services.postgresql.enable = true;
services.postgresql.package = pkgs.postgresql94;
到我的 /etc/nixos/configuration.nix
配置文件。
我还按照 example configuration 中的建议添加了 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
'';
在 NixOS 中,当数据库 cluster 被初始化(使用 postgres 的 initdb)时,数据库超级用户被设置为 root 而不是默认 postgres。所以 psql -U root
应该可以解决问题。
我试图在 NixOS 上使用 postgresql,当 运行ning $ psql -U postgres
$ psql -U postgres
psql: FATAL: role "postgres" does not exist
我在 运行ning $ psql
使用默认用户(我的用户名)时遇到了类似的错误。看来我的 postgres 安装没有可用于创建其他角色或 运行 任何命令的角色。
如何为我的 postgres 用户创建一个角色以便我可以发出命令?
我已经用 $ nix-env -i postgres
安装了 postgres 并按照 NixOS manual 配置,添加
services.postgresql.enable = true;
services.postgresql.package = pkgs.postgresql94;
到我的 /etc/nixos/configuration.nix
配置文件。
我还按照 example configuration 中的建议添加了 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
'';
在 NixOS 中,当数据库 cluster 被初始化(使用 postgres 的 initdb)时,数据库超级用户被设置为 root 而不是默认 postgres。所以 psql -U root
应该可以解决问题。