Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro ao conectar a API com "go run main.go"

Não sei exatamente o motivo de não conseguir me conectar.

Minha func de conexão está com as mesmas credenciais do arquivo "docker-compose.yml".

version: '3'
services:
  postgres:
    image: "postgres"
    environment:
      - POSTGRES_USER=root
      - POSTGRES_PASSWORD=root
      - POSTGRES_DB=root      
    ports:
      - "5432:5432"
    volumes:
      - ./postgres-data:/var/lib/postgresql/data  

  pgadmin-compose:
    image: dpage/pgadmin4
    environment:
      PGADMIN_DEFAULT_EMAIL: "andregc1983@gmail.com"
      PGADMIN_DEFAULT_PASSWORD: "123456"
    ports:
      - "54321:80"
    depends_on:
      - postgres

E o db.go

package database

import (
    "log"

    "github.com/gomez1983/api-go-gin/models"
    "gorm.io/driver/postgres"
    "gorm.io/gorm"
)

var (
    DB  *gorm.DB
    err error
)

func ConectaComBancoDeDados() {
    stringDeConexao := "host=localhost user=root password=root dbname=root port=5432 sslmode=disable"
    DB, err = gorm.Open(postgres.Open(stringDeConexao))
    if err != nil {
        log.Panic("Erro ao conectar com banco de dados")
    }
    DB.AutoMigrate(&models.Aluno{})
}

Antes desta aula a conexão era feita normalmente, mas depois ele acusa o erro abaixo:

2024/09/28 18:13:54 C:/Users/andre/Desktop/gin-api-rest/database/db.go:18
[error] failed to initialize database, got error failed to connect to `host=localhost user=root database=root`: failed SASL auth (FATAL: autentica��o do tipo senha falhou para o usu�rio "root" (SQLSTATE 28P01))
2024/09/28 18:13:54 Erro ao conectar com banco de dados
panic: Erro ao conectar com banco de dados

Já tentei recomeçar o conteiner do Docker, já tentei mudar as credenciais, mas o erro persiste. O que pode ser?

3 respostas

Invés de "localhost", escreva "postgres", para conectar no banco de dados, como está rodando no docker, o host precisa ser o nome do container, consegue fazer esse teste?

solução!

Olá, Arthur.

Consegui resolver de uma maneira inesperada. De algum modo, ao tentar novamente no dia seguinte (tendo limpado e subido novamente a imagem no Docker) a api funcionou.

não esqueça de marcar o comentário como SOLUCIONADO para ajudar outros colegas