You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring无法连接Docker部署的MongoDB问题求助

问题分析与解决步骤

你的MongoDB连接失败核心原因有三点,逐一修正即可解决:

1. Docker容器未暴露MongoDB端口到宿主机

当前docker-compose配置中,mongo服务没有配置端口映射,宿主机无法通过localhost:27017访问容器内的MongoDB。修改docker-compose.yml,给mongo服务添加端口映射:

version: '3.8'

services:
  mongo:
    image: mongo
    container_name: mongodb
    restart: always
    ports:
      - 27017:27017  # 添加端口映射,将容器内27017端口映射到宿主机
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example

  mongo-express:
    image: mongo-express
    container_name: mongo-express
    restart: always
    ports:
      - 8081:8081
    environment:
      ME_CONFIG_MONGODB_ADMINUSERNAME: root
      ME_CONFIG_MONGODB_ADMINPASSWORD: example
      ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/
      ME_CONFIG_BASICAUTH: false

2. Spring配置中的密码不匹配

Spring配置里的密码写的是pass,但docker-compose中Mongo的ROOT密码是example,两者不一致导致认证失败。修正Spring配置:

spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.username=root
spring.data.mongodb.password=example  # 改为与docker-compose一致的密码
spring.data.mongodb.repositories.enabled=true

3. 关于@EnableAutoConfiguration(exclude={MongoAutoConfiguration.class})的说明

添加这个注解后不再报错,是因为它禁用了Spring Boot自动初始化MongoDB连接的逻辑——相当于让Spring跳过Mongo连接的自动配置,自然不会触发连接失败的错误,但这只是隐藏问题,并非真正解决。

验证操作

  1. 停止并重启Docker容器:docker-compose down && docker-compose up -d
  2. 重启Spring应用,此时即可正常连接MongoDB。

内容的提问来源于stack exchange,提问作者Kado

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 03:57:06