Postgresql 连接到Docker中运行的postgres时出错:pq:用户密码身份验证失败";博士后;
试图打开数据库,但用户“postgres”的密码验证失败 我无法找到此问题的根本原因。第一次,我使用Docker。求救Postgresql 连接到Docker中运行的postgres时出错:pq:用户密码身份验证失败";博士后;,postgresql,docker,go,sqlx,Postgresql,Docker,Go,Sqlx,试图打开数据库,但用户“postgres”的密码验证失败 我无法找到此问题的根本原因。第一次,我使用Docker。求救 func openDB() (*sqlx.DB, error) { q := url.Values{} q.Set("sslmode", "disable") q.Set("timezone", "utc") u := url.URL{ Scheme
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
“密码验证失败”表示您的用户名或密码错误,或者您的服务器配置为不允许密码验证。我们对此无能为力。@Flimzy如果未将其配置为使用密码身份验证,您将不会收到该消息。但如果您需要密码,但尚未设置密码,则可以获取该密码。请查看数据库服务器的日志文件,以获取更完整的错误报告。出现端口问题。更改端口后,它仍在工作。谢谢。