MongoDB【部署 03】Windows系统安装mongodb并设置用户名密码(无需安装mongosh)及SpringBoot集成报错 Command failed with error 18

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: MongoDB【部署 03】Windows系统安装mongodb并设置用户名密码(无需安装mongosh)及SpringBoot集成报错 Command failed with error 18

1.下载安装

1.1 下载

官网下载地址会根据系统检测安装包:

Windows安装的版本跟【部署 02】里的版本保持一致。

1.2 安装

双击下载的安装包mongodb-windows-x86_64-6.0.10-signed.msi即可开始安装:

MongoDB的Windows安装程序通常提供了以下组件和选项:

  1. Server(服务器):MongoDB数据库服务器,是MongoDB的核心组件。它负责存储和管理数据,处理客户端的请求,并提供与MongoDB数据库的交互。安装服务器组件是安装MongoDB的必要部分。
  2. Router(路由器,也称为mongos):MongoDB路由器,通常称为mongos,是MongoDB的分片组件。它用于将客户端的请求路由到MongoDB分片群集中的相应分片。在具有分片群集的MongoDB部署中使用mongos非常重要,但在简单的非分片部署中可能不需要安装。
  3. Miscellaneous Tools(各种工具):这个选项通常包含了MongoDB的各种辅助工具和实用程序,这些工具可以帮助你管理MongoDB数据库和执行各种任务。其中包括:
  • mongoimport:用于将数据导入MongoDB数据库的工具。
  • mongoexport:用于将数据从MongoDB数据库导出的工具。
  • mongodump:用于备份MongoDB数据库的工具。
  • mongorestore:用于还原MongoDB备份的工具。
  • mongostat:用于监视MongoDB服务器状态的工具。
  • 等等…

根据你的需求和MongoDB部署的性质,你可以选择安装或不安装这些附加工具。通常,如果你只需要MongoDB的核心数据库服务器,并且不需要分片功能或其他高级功能,那么只安装服务器组件就足够了。如果你需要进行数据导入导出、备份还原等任务,那么安装各种工具将非常有用。

本次安装仅安装Server且不需要安装MongoShell,点击下一步,设置数据和日志目录【也可以通过配置文件进行修改】:

【安装比较耗时,如果有可视化工具比如Navicat】可以勾选掉 MongoDB Compass:

点击下一步,等待安装成功:

  • 安装成功后可以在系统服务里看的MongoDB服务

  • 或在浏览器里输入localhost:27017查看

2.设置用户名密码

2.1 找到配置文件

根据官网的说明找到配置文件:

配置文件里的配置项可查看官网详细说明文档

默认配置文档内容:

storage:
  directoryPerDB: true
  dbPath: D:\Program Files\MongoDB\Server\6.0\data
  journal:
    enabled: true
systemLog:
  destination: file
  logAppend: true
  path: D:\Program Files\MongoDB\Server\6.0\log
net:
  port: 27017
  bindIp: 127.0.0.1

2.2 设置用户名密码

有不少使用mongosh的实现方式,这里使用可视化工具Navicat实现。先不要开启authorization等创建好用户及密码后再开启。

2.2.1 Navicat操作

1.创建数据库,点击数据库 > 点击角色,可查看全部角色。

以下是这些角色的权限和用途的简要说明:

  • dbAdmin(数据库管理员)
    权限:允许用户管理数据库,包括创建和删除集合、索引和查看统计信息。
    用途:适用于需要管理数据库结构的用户,但不需要全局权限的情况。
  • dbOwner(数据库所有者):
    权限:具有数据库的所有权限,包括对数据库中所有集合的读写和管理权限。
    用途:通常是数据库的所有者,具有最高级别的权限。
  • enableSharding(启用分片权限):
    权限:允许用户在数据库上启用分片(sharding)功能,以便将数据分布在多个分片服务器上。
    用途:适用于设置分片集群的用户,用于处理大量数据。
  • read(读取权限):
    权限:允许用户对指定数据库中的数据执行读操作。
    用途:允许用户查询和读取数据库中的数据,但不能进行写操作。
  • readWrite(读写权限):
    权限:允许用户对指定数据库中的数据执行读和写操作。
    用途:允许用户执行读取和写入数据库中的数据操作,包括插入、更新和删除等操作。
  • userAdmin(用户管理员):
    权限:允许用户管理数据库中的用户和角色,包括创建、修改和删除用户。
    用途:适用于需要管理数据库用户的用户。

请注意,以上是这些角色的一般权限和用途描述,实际上,MongoDB的角色和权限可以更加细粒度地配置,以满足特定的应用需求。角色的权限也可以根据数据库的需要进行自定义配置。因此,在实际使用中,你可以根据具体的访问控制需求来配置和分配角色。

  1. 设置用户名及密码

  1. 设置角色

点击脚本预览,可查看SQL:

db.createUser({
    user: "testadmin",
    pwd: "123456",
    roles: [
        {
            role: "dbAdmin",
            db: "test"
        }
    ],
    authenticationRestrictions: [ ]
})

设置好角色后保存即可。

2.2.2 修改配置文件

修改配置文件,添加security.authorization配置,如下图:

重启服务:

2.3 验证

重新直接连接数据库:

说明需要进行用户认证,修改连接:

连接测试成功,但是:

关闭security.authorization重启MongoDB服务,将用户的角色设置为dbOwner,再开启验证,再重启MongoDB:

重新连接成功。

3.SpringBoot集成

依赖:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

配置:

# 可以这样配置
spring:
  data:
    mongodb:
      uri: mongodb://testadmin:123456@localhost:27017/test

另一种配置【一个报错】Command failed with error 18:

com.mongodb.MongoCommandException:
Command failed with error 18 (AuthenticationFailed): 'Authentication failed.' on server localhost:27017. 
The full response is {"ok": 0.0, "errmsg": "Authentication failed.", "code": 18, "codeName": "AuthenticationFailed"}
# 也可以这样配置      
spring:
  data:
    mongodb:
      host: localhost
      port: 27017
      database: test
      # 正确的配置
      username: testadmin
      password: '123456'
      # 报错的配置【密码没有用引号】
      username: testadmin
      password: 123456

MongoTemplate注入即可使用:

@SpringBootTest
public class MongoTemplateTest {
    @Resource
    private MongoTemplate mongoTemplate;
}

具体的方法我们下次继续。

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
2月前
|
NoSQL IDE MongoDB
Studio 3T 2025.5 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
Studio 3T 2025.5 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
116 2
Studio 3T 2025.5 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
|
7月前
|
NoSQL Java MongoDB
Springboot WebFlux项目结合mongodb进行crud
这篇文章介绍了如何使用Spring Boot WebFlux框架结合MongoDB进行基本的CRUD(创建、读取、更新、删除)操作,包括项目设置、实体类和Repository的创建、控制器的实现以及配置文件的编写。
148 0
Springboot WebFlux项目结合mongodb进行crud
|
2月前
|
NoSQL IDE MongoDB
Studio 3T 2025.4 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
Studio 3T 2025.4 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
88 0
Studio 3T 2025.4 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
|
9月前
|
NoSQL Java MongoDB
SpringBoot中MongoDB的那些高级用法
本文探讨了在Spring Boot项目中使用MongoDB的多种方式及其高级用法。MongoDB作为一种NoSQL数据库,在某些场景下相较于SQL数据库有着独特的优势。文中详细介绍了在Spring Boot中使用MongoDB的三种主要方式:直接使用官方SDK、使用Spring JPA以及使用MongoTemplate,并对比分析了它们之间的差异。此外,文章深入讲解了Spring Data MongoDB提供的各种注解(如@Id, @Document, @Field等)以简化操作流程,并探讨了MongoTemplate监听器的应用,如设置主键值、记录日志等。
442 2
|
7月前
|
存储 NoSQL MongoDB
MongoDB入门级别教程全(Windows版,保姆级教程)
一份全面的MongoDB入门级教程,包括在Windows系统上安装MongoDB、使用MongoDB Shell和Compass GUI进行数据库操作,以及MongoDB的基本数据类型和查询技巧。
930 2
MongoDB入门级别教程全(Windows版,保姆级教程)
|
7月前
|
SQL NoSQL Java
springboot操作nosql的mongodb,或者是如何在mongodb官网创建服务器并进行操作
本文介绍了如何在Spring Boot中操作NoSQL数据库MongoDB,包括在MongoDB官网创建服务器、配置Spring Boot项目、创建实体类、仓库类、服务类和控制器类,以及如何进行测试。
71 1
springboot操作nosql的mongodb,或者是如何在mongodb官网创建服务器并进行操作
|
7月前
|
NoSQL Shell MongoDB
Windows 平台安装 MongoDB
10月更文挑战第10天
182 0
Windows 平台安装 MongoDB
|
8月前
|
存储 Shell 开发工具
8-8|windows上Git报错
8-8|windows上Git报错
|
9月前
|
Shell PHP Windows
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
|
16天前
|
JavaScript 前端开发 Java
制造业ERP源码,工厂ERP管理系统,前端框架:Vue,后端框架:SpringBoot
这是一套基于SpringBoot+Vue技术栈开发的ERP企业管理系统,采用Java语言与vscode工具。系统涵盖采购/销售、出入库、生产、品质管理等功能,整合客户与供应商数据,支持在线协同和业务全流程管控。同时提供主数据管理、权限控制、工作流审批、报表自定义及打印、在线报表开发和自定义表单功能,助力企业实现高效自动化管理,并通过UniAPP实现移动端支持,满足多场景应用需求。

热门文章

最新文章