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

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

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
设置MongoDB的账号密码,可以按照以下步骤进行操作: 1. 进入MongoDB安装目录的bin目录。可以使用命令`cd /mongodb安装目录/bin`进入。 2. 打开MongoDB的配置文件mongod.cfg,可以在bin目录下找到。在该文件中开启权限验证功能,在security下添加`authorization: enabled`。 3. 保存并退出配置文件。 4. 重启MongoDB服务,以使配置生效。 5. 使用mongo命令连接到MongoDB数据库,并登录超级管理员账号。 有两种方式可以登录超级管理员账号: - 方式一:使用以下命令登录 ``` mongo use admin db.auth('admin', '密码') ``` 其中'admin'是超级管理员的账号,'密码'是超级管理员的密码。 - 方式二:使用以下命令登录 ``` mongo admin -u admin -p 密码 ``` 其中'admin'是超级管理员的账号,'密码'是超级管理员的密码。 通过以上步骤,你就可以成功设置MongoDB的账号密码了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [mongodb 设置用户账号密码](https://blog.csdn.net/weixin_42140261/article/details/105242450)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MongoDB设置登录账号和密码](https://blog.csdn.net/hbtj_1216/article/details/120875957)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

シ風箏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值