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

使用Docker Compose连接Spring Boot应用与MongoDB时出现认证失败错误:无法找到指定数据库中的用户

解决Docker Compose中Spring Boot连接MongoDB的认证失败问题

这个问题我之前帮朋友排查过,核心原因就是MongoDB在指定的user_db数据库里找不到你创建的user用户,咱们一步步来解决:

  • 确认用户创建的数据库是否正确
    MongoDB的用户是和数据库绑定的,你必须在user_db数据库下创建user用户,而不是默认的admin库。如果是用初始化脚本创建用户,脚本内容应该是这样的:

    use user_db
    db.createUser({
      user: "user",
      pwd: "your_password",
      roles: [{ role: "readWrite", db: "user_db" }]
    })
    

    要是你在admin库创建了用户,即使给了user_db的权限,认证时也会找不到,因为默认认证源是admin。

  • 检查Docker Compose的MongoDB配置
    确保你在MongoDB的服务配置里指定了初始化数据库为user_db,这样初始化脚本会自动在这个库执行:

    services:
      mongodb:
        image: mongo:latest
        environment:
          - MONGO_INITDB_DATABASE=user_db
          - MONGO_INITDB_ROOT_USERNAME=root
          - MONGO_INITDB_ROOT_PASSWORD=root_pwd
        volumes:
          - ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js
    

    这里的MONGO_INITDB_DATABASE是关键,没设置的话,初始化脚本会跑到admin库去创建用户,自然会出现找不到的错误。

  • 修正Spring Boot的连接配置
    你的Spring Boot连接字符串必须明确指定认证源为user_db,不然MongoDB会默认去admin库找用户。比如在application.yml里:

    spring:
      data:
        mongodb:
          uri: mongodb://user:your_password@mongodb:27017/user_db?authSource=user_db
    

    或者用分开的配置项:

    spring:
      data:
        mongodb:
          host: mongodb
          port: 27017
          database: user_db
          username: user
          password: your_password
          authentication-database: user_db
    

    重点是authSource或者authentication-database参数,必须指向user_db。

  • 手动验证用户是否存在
    你可以进入MongoDB容器,手动确认用户是否在user_db里:

    docker exec -it <你的mongodb容器名> mongosh
    

    然后执行命令:

    use user_db
    db.getUsers()
    

    如果输出里没有user这个用户,说明创建过程有问题,要么是脚本没执行,要么是创建到了其他库,需要重新调整初始化逻辑。

  • 检查初始化脚本的执行日志
    查看MongoDB容器的启动日志,搜索“initdb”相关的内容,确认你的初始化脚本是否被正确执行了。如果日志里有“Successfully executed custom script”的提示,说明脚本跑了,那大概率是脚本里的数据库切换错了;如果没找到相关日志,可能是挂载路径不对,或者脚本文件名不是.js后缀(MongoDB只执行docker-entrypoint-initdb.d下的.sh或.js文件)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 08:32:39