Laravel Sail:致命:用户 "sail" 的密码验证失败

Laravel Sail: FATAL: password authentication failed for user "sail"

我用 PostgreSQL 创建了一个 laravel sail 项目,然后我尝试在第 3 方软件(TablePlus 和 Navicat)上连接服务器,我收到了这个错误消息

FATAL:  password authentication failed for user "sail"

这是我的docker-compose.yml

    pgsql:
        image: 'postgres:13'
        ports:
            - '${FORWARD_DB_PORT:-5432}:5432'
        environment:
            PGPASSWORD: '${DB_PASSWORD:-secret}'
            POSTGRES_DB: '${DB_DATABASE}'
            POSTGRES_USER: '${DB_USERNAME}'
            POSTGRES_PASSWORD: '${DB_PASSWORD:-secret}'
        volumes:
            - 'sailpgsql:/var/lib/postgresql/data'
        networks:
            - sail
        healthcheck:
          test: ["CMD", "pg_isready", "-q", "-d", "${DB_DATABASE}", "-U", "${DB_USERNAME}"]
          retries: 3
          timeout: 5s

这是我的环境

DB_CONNECTION=pgsql
DB_HOST=pgsql
DB_PORT=5432
DB_DATABASE=laravel
DB_USERNAME=sail
DB_PASSWORD=password

这是全新安装,我没有做任何更改。它正在与 MySQL 一起使用,我是不是遗漏了什么?谢谢..

结果端口 5432 已经被我的 windows 上的另一个 postgresql 服务使用,所以我只是在我的环境中更改 FORWARD_DB_PORT。傻我

在从源代码管理克隆我的 Laravel Sail 项目后,我也 运行 遇到了这个问题。我发现错误的原因是我在将 DB_PASSWORD 添加到我的新 .env 文件之前下载了 Sail 并启动了容器。尽管这被标记为已解决,但我还是会 post 以防万一这就是其他人遇到此问题的原因。

修复错误:

  1. 确保您的环境变量设置正确
  2. 重新创建包含数据库的 Docker 卷
sail down
docker volume ls
docker volume rm example-app_sailmysql
sail up -d

^ 将“example-app_sailmysql”替换为您的 Docker 卷的名称

在克隆 Laravel Sail 项目时弄清楚我的所有问题后,我制作了一个要点,其中包含要遵循的步骤。它还包含一个脚本,可轻松安装 Composer 依赖项以重新获得对 Sail 二进制文件的访问权限。

https://gist.github.com/LaurenceRawlings/3b4f801cafb2e683f45a3b573dad868d