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

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: 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
目录
相关文章
|
3天前
|
网络协议 安全 测试技术
Windows安装禅道系统结合Cpolar实现公网访问内网BUG管理服务
Windows安装禅道系统结合Cpolar实现公网访问内网BUG管理服务
|
3天前
|
Linux 虚拟化 Docker
Windows12安装Docker
Windows12安装Docker
20 2
|
13天前
|
安全 Java
Springboot2.1.1版本升级到2.3.10版本报错合集及解决办法
Springboot2.1.1版本升级到2.3.10版本报错合集及解决办法
|
20天前
|
安全 Windows
安装MyEclipse遇到错误提示 Failed to find a Main Class in “C:Windows\Temp\“时的解决方案
安装MyEclipse遇到错误提示 Failed to find a Main Class in “C:Windows\Temp\“时的解决方案
22 1
|
24天前
|
Java
SpringBoot启动报错:org.apache.catalina.LifecycleException: Protocol handler start failed
SpringBoot启动报错:org.apache.catalina.LifecycleException: Protocol handler start failed
19 0
|
1月前
|
Linux 数据安全/隐私保护 Docker
linux和windows中安装emqx消息服务器
linux和windows中安装emqx消息服务器
27 0
|
1月前
|
物联网 Windows
安装windows 10操作系统
安装windows 10操作系统
46 1
|
1月前
|
Java 数据库
【问题记录(已解决)】springboot整合ssm报错‘url‘ attribute is not specified and no embedded datasource
【问题记录(已解决)】springboot整合ssm报错‘url‘ attribute is not specified and no embedded datasource
|
1月前
|
Windows
windows server 2019 安装NET Framework 3.5失败,提示:“安装一个或多个角色、角色服务或功能失败” 解决方案
windows server 2019 安装NET Framework 3.5失败,提示:“安装一个或多个角色、角色服务或功能失败” 解决方案
|
1月前
|
安全 数据安全/隐私保护 Windows
解锁安全之门,Windows Server 2019密码修改攻略大揭秘
解锁安全之门,Windows Server 2019密码修改攻略大揭秘