试过了各自办法和问了 chatgpt 和 cursor ,但还是数据库连接失败,防火墙打开端口了,mysql 服务也启动了,端口也没有被占用,数据库 url 也是直接设置的云服务 ip ,数据库权限也设置了所有人。
项目架构 这是一个在单台服务器上,通过 Docker Compose 部署的前后端分离项目。 入口: 一个 Nginx 反向代理 (nginx-proxy) 作为系统的 API 网关,处理所有 HTTPS 请求。 前端: 一个 React 应用,被打包在独立的 Nginx 容器中。 后端: 一个 Spring Boot 应用,提供 /api 开头的接口。 数据库: 直接运行在服务器的宿主机上,而不是在容器里。
架构图如下:
有时间的佬可以私信我,使用 ToDesk 远程控制,解决后发口令红包。
![]() |
1
ganbuliao 69 天前
我试试喽
|
![]() |
2
ganbuliao 69 天前
v:aGhzc2lpaWkK
|
3
jworg 69 天前 ![]() "数据库 url 也是直接设置的云服务 ip"
这个结构完全不用防火墙相关吧,docker-compose 有个配置 extra_hosts: - "host.docker.internal:host-gateway" 用 host.docker.internal:3306 来连接。 另外请提供下宿主机 ip 类型,是公网的 ip 还是 docker 桥上的 ip 。 |
6
abolast 69 天前
很好奇你创建数据库的命令是什么,有没有准确配置好 ip 。其实最简单能行的,就是宿主机的内网 ip 为基准来访问,就行了。就算后端和数据库两个容器在同一台机,你可以通过宿主机的内网 ip 来哩,这样就无需考虑容器的网络模式了
|
![]() |
7
momocraft 69 天前
容器内用的什么连接 URL 原样发出来看看,可能是 listen inferface 不对
|
![]() |
8
oneisall8955 PRO ![]() 容器内访问宿主机网络,需要填写 docker0 接口 ip 例如 172.17.0.1
|
![]() |
9
oneisall8955 PRO 数据库 url 也是直接设置的云服务 ip ,为啥要绕外网呢?
|
![]() |
11
wuhanchu 67 天前
甚至都画了个图。。直接 compose 复制给 AI 问问不就知道了。
|
12
kcross 67 天前
我记得 腾讯云的 mysql 有连接的白名单 你需要把你的新服务器加进去
|