0

我用 PostgreSQL 创建了一个 laravelsai 项目,然后我尝试在 3rd 方软件(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 一起工作,我错过了什么吗?谢谢你..

4

2 回答 2

2

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

要修复错误:

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

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

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

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

于 2021-12-27T19:10:45.617 回答
1

原来端口 5432 已被我的 Windows 上的另一个 pgsql 服务使用,所以我只需在我的环境中更改 FORWARD_DB_PORT。傻我

于 2021-07-09T04:41:56.140 回答