首页 > 解决方案 > 使用 createdb 命令的非交互式密码

问题描述

我正在尝试使用以下命令创建一个数据库:

export PGPASSFILE="$HOME/pgpass/platform/.pgpass"

mkdir -p "$(dirname "$PGPASSFILE")"

echo "$db_host:5432:$db_name:platformadmin:$db_pwd" > "$PGPASSFILE"

chmod 600 "$PGPASSFILE"

createdb -h "$db_host" -p 5432 -U 'platformadmin' --no-password "$db_name"

但我收到此错误:

createdb:无法连接到数据库模板 1:fe_sendauth:未提供密码

如果我删除 --no-password 标志,那么它会提示我输入密码。我认为 PGPASSFILE 会工作?

标签: postgresql

解决方案


我只是用这个代替:

PGPASSWORD="$admin_user_pwd" createdb -U admin_user -h "$db_host" -p 5432 --no-password -e "$db_name"

它奏效了。没有密码文件,只有命令行。


推荐阅读