Home > OS >  PostgreSQL and Strapi - password authentication failed for user "*"
PostgreSQL and Strapi - password authentication failed for user "*"

Time:06-30

I am trying to connect Strapi with PostgreSQL database. I am also using Docker in order to compose the "db". I have managed to make the PostgreSQL running on port 5432, and I am also able to connect to the database with docker exec -it nameOfContainer bash command without any problems. The only problem I do have is that I can not connect to the database from Strapi. I keep getting error password authentication failed for user "strapibase". I know that the username of superuser is "strapibase" but I keep getting errors on and can not run the Strapi yarn run develop command.

docker-compose.yml

version: '3.3'

services:
  db:
    image: postgres:alpine
    networks:
      - strapi-app-network
    volumes:
      - db-data:/data
    ports:
      - "5432:5432"
    environment:
      POSTGRES_DB: strapibase
      POSTGRES_USER: strapibase
      POSTGRES_PASSWORD: strapibase

volumes:
  db-data:

networks:
  strapi-app-network:
    driver: bridge

database.js

module.exports = ({ env }) => ({
  defaultConnection: "default",
  connections: {
    default: {
      connector: "bookshelf",
      settings: {
        client: "postgres",
        host: env("DATABASE_HOST", "localhost"),
        port: env.int("DATABASE_PORT", 5432),
        database: env("DATABASE_NAME", "strapibase"),
        username: env("DATABASE_USERNAME", "strapibase"),
        password: env("DATABASE_PASSWORD", "strapibase"),
        schema: env("DATABASE_SCHEMA", "public"),
      },
      options: {},
    },
  },
});

Can someone tell me what am I doing wrong here?

docker ps -a

CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS          PORTS                    NAMES
94873c9919bc   postgres:alpine   "docker-entrypoint.s…"   33 minutes ago   Up 26 minutes   0.0.0.0:5432->5432/tcp   strapi-backend-db-1

I do have pgAdmin4 also installed on desktop, tried adding server there also keep getting the same error

CodePudding user response:

I think you should use db (The name of database service name) as your DATABASE_HOST to connect successfully.

CodePudding user response:

Your docker-compose.yml only defines the database. It exposes port 5432 locally, meaning localhost:5432 is the right hostname in this case.

Verify the connection locally by running psql -h 127.0.0.1 -U strapibase -d strapibase and enter the password.

  • Related