症状
服务器返回 FATAL: database "appdb" does not exist。认证本身没问题,因此失败发生在选择数据库阶段,而非凭据。
诊断
列出数据库并显式连接:
psql -h db.internal -U app -l
psql -h db.internal -U app -d appdb
省略 -d 时,psql 会默认连接以用户名命名的数据库,而它可能并不存在。
修复
创建并始终显式指定数据库:
CREATE DATABASE appdb OWNER app;
postgresql://app:[email protected]:5432/appdb
验证
用显式库名分别从 psql 与应用连接;二者都成功,且 psql -l 列出了 appdb,确认目标数据库存在。