【问题标题】:cant connect to postgres db - docker swarm无法连接到 postgres db - docker swarm
【发布时间】:2017-09-26 11:07:54
【问题描述】:

我无法通过 IntelliJ 连接到我的 postgresql。 我正在使用这个 docker-compose 文件:

version: '3'
services:
 db:
  image: postgres
  environment:
   POSTGRES_DB: postgres
   POSTGRES_USER: postgres_user
   POSTGRES_PASSWORD: postgres_password
   PG_DATA: /var/lib/postgresql/data/pgdatai
  expose:
   - "5432"
  ports:
   - "5432"
  volumes:
   - /var/lib/postresql/db/
  deploy:
   placement:
    constraints:
     - node.hostname == vmAPT1

我通过命令把这个放进去:

docker stack deploy --compose-file docker-compose.yml vmAPT1

当我使用时:

docker ps

我明白了:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
31d1337a142c        postgres:latest     "docker-entrypoint..."   30 minutes ago      Up 30 minutes       5432/tcp            vmAPI1_db.1

当我试图通过 IntelliJ 简单地连接到数据库时:

jdbc:postgresql://192.168.200.140:5432/postgres

我收到连接失败的消息。怎么处理??我以为端口是开放的连接

【问题讨论】:

  • 能否提供来自服务器的 PostgreSQL 错误日志?
  • 它应该类似于:2017-09-09 18:10:17 UTC [2740-2] postgres_user@postgres FATAL: Peer authentication failed for user "postgres_user"
  • @AK47 我只能拥有来自 docker 服务日志 id_of_service 的日志。而且他们很穷。我没有看到更多获取日志的可能性,就像您所说的那样。
  • 输出是什么docker service ls
  • @xross 你的pgdata目录不对,应该是PG_DATA: /var/lib/postgresql/data还是你在/pgdatai初始化了你的数据库集群?

标签: postgresql docker intellij-idea jdbc docker-swarm


【解决方案1】:

我发现了问题: yml 文件中的错误: 而不是

port: 
- "5432"

应该是:

port:
- "5432:5432"

【讨论】:

  • 应该是ports而不是port
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-15
相关资源
最近更新 更多