我无法从WSL2上运行的服务之一连接到WSL2上容器中运行的postgres DB.

我可以从运行在WSL2上的另一个服务连接到此数据库,也可以从运行在windows上的pgAdmin和运行在windows上的另一个服务连接到此数据库.

2022-02-25 20:25:52.975  INFO 2829 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2022-02-25 20:25:53.207  INFO 2829 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.

但是当我试图从WSL2上运行的另一个服务连接到这个数据库时,我得到了

org.postgresql.util.PSQLException: Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

我try 使用WSL IP、ipv4系统代替本地主机,但没有任何帮助.两个服务之间的区别是第一个是uber jar,第二个是我try 使用docker compose运行.

推荐答案

如果您试图从localhost访问数据库,则需要发布数据库的端口.

如果您试图从另一个容器连接,则需要在同一docker网络上加入这两个容器,并使用DB容器的名称作为主机名,而不是localhost.或者它的一个别名.在compose的情况下,容器通常已经在同一个网络上,您可以使用compose服务名称作为主机名,因为该服务的所有副本都是以服务名称的别名添加到网络中的.

Postgresql相关问答推荐

在输入稍有错误的PostgreSQL表中进行快速字符串搜索

在Docker Compose中获取CSV文件数据?

Select 所有数组类型和维度

Postgres 视图定义 (pgAdmin) 被删除了 comments ?

如何在 sequelize 使用 db postgres 中通过外键更新记录和更新包含许多记录关系

Postgres >= 和 <= 具有特殊字符的行为

如何在 Sequelize ORM 中插入 PostGIS GEOMETRY 点?

postgresql查询中的正则表达式不区分大小写

推送到 Heroku 时出现带有 Postgres 的 Rails 迁移错误

保存 geodjango PointField 时出错

我如何在docker中备份数据库

从 PostgreSQL 中的字段中提取数字

PostgreSQL如何连接间隔值'2天'

如何在 PostgreSQL 中创建 guid

获取 psycopg2 count(*) 结果数

Postgres Npgsql 连接池

如何在 redshift 中对字段进行 GROUP BY 和 CONCATENATE

Postgres DB 上的整数超出范围

在 Flask-sqlalchemy 和 Postgresql 中使用 JSON 类型

判断 Postgres 中是否存在序列(plpgsql)