windows - 无法从 Web Docker 容器连接到外部 PostgreSql 数据库
问题描述
我已经在我的机器上安装了 PostgreSql,我想将它用作 Dockerized Laravel Web 应用程序的外部数据库。我不想使用 postgre 图像,而是使用本地数据库。它也可以是mysql。
码头工人-compose.yml
`version: ‘3’
services:
app:
build:
context: .
dockerfile: .docker/Dockerfile
image: docker-app
ports:
- 8004:80`
.env
`DB_CONNECTION=pgsql
DB_HOST= 127.0.0.1 or localhost
DB_PORT=5432
DB_DATABASE=testdb
DB_USERNAME=postgres
DB_PASSWORD=password`
错误如下:
SQLSTATE [08006] [7] 无法连接到服务器:连接被拒绝
服务器是否在主机“127.0.0.1”上运行并接受端口 5432 上的 TCP/IP 连接?`
问题的原因我知道应用程序容器没有连接到外部数据库,因为它在其文件系统之外。
如果我将 DB_HOST 更改为本地 IP 地址,就会出现这个
错误:SQLSTATE[08006] [7] FATAL: no pg_hba.conf entry for host 10.0.9.57`
解决方案
如果您收到消息“主机 10.0.9.57 没有 pg_hba.conf 条目”,您需要将 postgresql 的配置更改为来自 docker 映像(10.0.9.57)的所有远程连接,请参阅此答案
推荐阅读
- migration - 在现有物理主机上无法增加虚拟机容量时,配置虚拟机到另一台物理主机的实时迁移策略
- c++ - 计算复合类的哈希值
- swift - 在使用 Swift 而没有第三方框架的情况下查看生产中抛出的错误的好方法是什么?
- c++ - 正确使用函数的显式模板实例化?
- laravel - 使用 3 个表在 laravel eloquent 中创建计算的自定义列
- c# - T4 TemplateFileManager 输出到项目文件夹
- python - 查找连续的最后一个字母:尝试遍历连续字母时列表索引超出范围
- android - 如何使用按钮阻止屏幕滑动(viewpager)
- java - 如何在 Spring Boot 中使用另一表中的外键从一个表中获取值?
- mongodb - Mongodb - 尝试进一步过滤到文档的子数组