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;
}

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

目录
相关文章
|
3月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
391 4
|
6月前
|
消息中间件 存储 Java
微服务——SpringBoot使用归纳——Spring Boot中集成ActiveMQ——ActiveMQ安装
本教程介绍ActiveMQ的安装与基本使用。首先从官网下载apache-activemq-5.15.3版本,解压后即可完成安装,非常便捷。启动时进入解压目录下的bin文件夹,根据系统选择win32或win64,运行activemq.bat启动服务。通过浏览器访问`http://127.0.0.1:8161/admin/`可进入管理界面,默认用户名密码为admin/admin。ActiveMQ支持两种消息模式:点对点(Queue)和发布/订阅(Topic)。前者确保每条消息仅被一个消费者消费,后者允许多个消费者同时接收相同消息。
187 0
微服务——SpringBoot使用归纳——Spring Boot中集成ActiveMQ——ActiveMQ安装
|
6月前
|
NoSQL MongoDB 微服务
微服务2——MongoDB单机部署1——下载安装
本指南介绍在Windows系统上安装和启动MongoDB的步骤。首先,从官网下载适用于32位或64位系统的预编译二进制包,选择稳定版(y为偶数)。解压后创建数据目录`data/db`,可通过命令行参数(如`mongod --dbpath=..\data\db`)或配置文件启动服务。配置文件需注意转义字符与空格使用,支持自定义日志路径、端口等参数。将bin目录加入环境变量可简化启动操作。
192 0
微服务2——MongoDB单机部署1——下载安装
|
6月前
|
NoSQL Java Redis
微服务——SpringBoot使用归纳——Spring Boot 中集成Redis——Redis 安装
本教程介绍在 VMware 虚拟机(CentOS 7)或阿里云服务器中安装 Redis 的过程,包括安装 gcc 编译环境、下载 Redis(官网或 wget)、解压安装、修改配置文件(如 bind、daemonize、requirepass 等设置)、启动 Redis 服务及测试客户端连接。通过 set 和 get 命令验证安装是否成功。适用于初学者快速上手 Redis 部署。
147 0
|
6月前
|
存储 NoSQL Linux
微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
427 0
|
11月前
|
NoSQL Shell MongoDB
Mac OSX 平台安装 MongoDB
10月更文挑战第11天
223 4
|
11月前
|
人工智能 JavaScript 网络安全
ToB项目身份认证AD集成(三完):利用ldap.js实现与windows AD对接实现用户搜索、认证、密码修改等功能 - 以及针对中文转义问题的补丁方法
本文详细介绍了如何使用 `ldapjs` 库在 Node.js 中实现与 Windows AD 的交互,包括用户搜索、身份验证、密码修改和重置等功能。通过创建 `LdapService` 类,提供了与 AD 服务器通信的完整解决方案,同时解决了中文字段在 LDAP 操作中被转义的问题。
298 1
|
10月前
|
存储 NoSQL 网络协议
【赵渝强老师】MongoDB的安装与访问
本文介绍了在Linux系统上安装和部署MongoDB的详细步骤,包括安装依赖包、解压安装包、配置环境变量、创建数据目录及启动服务等。文中还提供了相关命令示例和注意事项,帮助用户顺利完成MongoDB的安装与配置。
262 0
|
5天前
|
运维 安全 网络安全
Windows Server 2019拨号“找不到设备”?Error 1058解决指南
Windows Server 2019拨号报错1058?别急!这不是硬件故障,而是关键服务被禁用。通过“服务依存关系”排查,依次启动“安全套接字隧道协议”“远程接入连接管理”和“路由与远程访问”服务,仅需4步即可恢复PPPoE或VPN拨号功能,轻松解决网络中断问题。
58 1
|
5天前
|
存储 SQL 人工智能
Windows Server 2025 中文版、英文版下载 (2025 年 9 月更新)
Windows Server 2025 中文版、英文版下载 (2025 年 9 月更新)
290 3
Windows Server 2025 中文版、英文版下载 (2025 年 9 月更新)

推荐镜像

更多