You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建Phoenix/Elixir项目时Postgres密码验证错误怎么解决?

错误核心原因

Postgrex返回28P01 invalid_password错误,是因为Phoenix项目默认的数据库配置密码,和你Docker启动的Postgres实例设置的密码不匹配导致。


解决步骤

  1. 修改项目数据库配置
    打开项目目录下的config/dev.exs文件,找到Pento.Repo的配置块,将password字段的值改为你启动Docker容器时设置的Phoenix1234,修改后的配置参考:
config :pento, Pento.Repo,
  username: "postgres",
  password: "Phoenix1234",
  hostname: "localhost",
  database: "pento_dev",
  stacktrace: true,
  show_sensitive_data_on_connection_error: true,
  pool_size: 10
  1. (修改配置后仍报错时执行)重置Postgres容器数据
    如果你之前用同一个挂载目录启动过Postgres容器、设置过其他密码,原有数据目录会保留旧的密码配置,需要重置后才能生效:
# 停止并删除现有容器
docker stop phoenix-psql
docker rm phoenix-psql
# 清空旧数据目录
rm -rf ~/phoenix-postgres-data/*
# 重新启动Postgres容器
docker run -d \
 --name phoenix-psql \
 -e POSTGRES_PASSWORD=Phoenix1234 \
 -v ${HOME}/phoenix-postgres-data/:/var/lib/postgresql/data \
 -p 5432:5432 \
 postgres
  1. 验证数据库连接
    执行以下命令手动验证Postgres连接是否正常,提示输入密码时输入Phoenix1234,能成功进入命令行即说明数据库本身运行正常:
psql -h localhost -U postgres -d postgres
  1. 重新执行项目启动命令
    你原有启动命令重复执行了两次服务启动逻辑,调整为如下命令即可:
cd pento
mix ecto.create && iex -S mix phx.server

内容的提问来源于stack exchange,提问作者madeinQuant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 05:15:00