1.下载安装
1.1 下载
官网下载地址会根据系统检测安装包:
Windows安装的版本跟【部署 02】里的版本保持一致。
1.2 安装
双击下载的安装包mongodb-windows-x86_64-6.0.10-signed.msi
即可开始安装:
MongoDB的Windows安装程序通常提供了以下组件和选项:
- Server(服务器):MongoDB数据库服务器,是MongoDB的核心组件。它负责存储和管理数据,处理客户端的请求,并提供与MongoDB数据库的交互。安装服务器组件是安装MongoDB的必要部分。
- Router(路由器,也称为mongos):MongoDB路由器,通常称为
mongos
,是MongoDB的分片组件。它用于将客户端的请求路由到MongoDB分片群集中的相应分片。在具有分片群集的MongoDB部署中使用mongos
非常重要,但在简单的非分片部署中可能不需要安装。 - 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的角色和权限可以更加细粒度地配置,以满足特定的应用需求。角色的权限也可以根据数据库的需要进行自定义配置。因此,在实际使用中,你可以根据具体的访问控制需求来配置和分配角色。
- 设置用户名及密码
- 设置角色
点击脚本预览,可查看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; }
具体的方法我们下次继续。