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

Spring Boot无法连接本地MongoDB问题求助

Spring Boot连接MongoDB容器时连接异常的解决办法

运行Spring Boot应用时抛出以下异常:

Exception in monitor thread while connecting to server localhost:8081

我尝试过两种配置方式,都没能解决问题:

  • URI配置:
spring.data.mongodb.uri=mongodb://root:example@localhost:8081/test
  • 拆分参数配置:
spring.data.mongodb.host=localhost
spring.data.mongodb.port=8081
spring.data.mongodb.database=test
spring.data.mongodb.username=root
spring.data.mongodb.password=example

目前mongo-express管理面板可以通过localhost:8081正常访问,确认服务运行正常。本地启动MongoDB容器的Docker Compose配置如下:

# Use root/example as user/password credentials
version: '3.1'

services:

  mongo:
    image: mongo
    restart: always
    environment:
      MONGO_INITDB_DATABASE: test
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example

  mongo-express:
    image: 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/

问题根源

你搞混了MongoDB服务端口和mongo-express的端口:

  • mongo-express是MongoDB的Web管理工具,它对外暴露的端口是8081(对应Docker Compose里的8081:8081映射)
  • MongoDB服务本身默认使用27017端口,你的Docker Compose里没有把这个端口映射到主机,而且Spring配置错误地指向了mongo-express的8081端口,自然连不上MongoDB。

修复步骤

  1. 修改Docker Compose,映射MongoDB的27017端口
    在mongo服务块里添加端口映射:
mongo:
    image: mongo
    restart: always
    ports:
      - 27017:27017  # 新增:将容器内27017端口映射到主机27017端口
    environment:
      MONGO_INITDB_DATABASE: test
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example

执行命令重启容器:

docker-compose down && docker-compose up -d
  1. 修正Spring Boot的MongoDB配置
    把配置里的端口从8081改成27017:
  • URI配置修正后:
spring.data.mongodb.uri=mongodb://root:example@localhost:27017/test
  • 拆分参数配置修正后:
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=test
spring.data.mongodb.username=root
spring.data.mongodb.password=example
  1. 重启Spring Boot应用,此时就能正常连接到MongoDB容器了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 05:35:19