繁体   English   中英

连接到在 Docker 中运行的 postgres 时出错:pq:用户“postgres”的密码验证失败

[英]Getting an error while connecting to postgres running in Docker: pq: password authentication failed for user “postgres”

试图打开数据库,但它说用户“postgres”的密码验证失败我无法找到这个问题的根本原因。第一次,我使用的是 Docker。 请帮忙

func openDB() (*sqlx.DB, error) {
    q := url.Values{}
    q.Set("sslmode", "disable")
    q.Set("timezone", "utc")

    u := url.URL{
        Scheme:   "postgres",
        User:     url.UserPassword("postgres", "postgres"),
        Host:     "localhost",
        Path:     "postgres",
        RawQuery: q.Encode(),
    }
    fmt.Println(u.String())
    
    // fmt.Println(u.String()) is
    // postgre://postgres:postgres@localhost/postgres?sslmode=disable&timezone=utc
    return sqlx.Open("postgres", u.String())
}

docker-compose.yaml看起来像这样。

version: '3'
networks:
  shared-network:
    driver: bridge
services:
  db:
    container_name: sales_db
    networks:
      - shared-network
    image: postgres:11.1-alpine
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
    ports:
      - 5432:5432

代码没有问题。 我改变了端口一切现在都在工作。

func openDB() (*sqlx.DB, error) {
    q := url.Values{}
    q.Set("sslmode", "disable")
    q.Set("timezone", "utc")

    u := url.URL{
        Scheme:   "postgres",
        User:     url.UserPassword("postgres", "postgres"),
        Host:     "localhost:5433", // change here
        Path:     "postgres",
        RawQuery: q.Encode(),
    }
    fmt.Println(u.String())
    
    // fmt.Println(u.String()) is
    // postgre://postgres:postgres@localhost/postgres?sslmode=disable&timezone=utc
    return sqlx.Open("postgres", u.String())
}

version: '3'
networks:
  shared-network:
    driver: bridge
services:
  db:
    container_name: sales_db
    networks:
      - shared-network
    image: postgres:11.1-alpine
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
    ports:
      - 5433:5432 //change here

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM