MongoDB 安装、设置密码、开启事务支持

MongoDB 安装、设置密码、开启事务支持

MongoDB 安装、设置密码、开启事务支持

独立观察员 2024 年 1 月 5 日

 

1、安装 MongoDB

中文官网:https://www.mongodb.com/zh-cn 

使用社区版:

%title插图%num

 

在打开的页面选择版本并下载(本文的版本为 MongoDB 7.0.4):

%title插图%num

 

安装过程展示 1(可以安到 D 盘):

%title插图%num

 

安装过程展示 2(MongoDB Compass 可自动下载安装,或者取消勾选后面手动安装):

%title插图%num

 

2、安装 MongoDB Compass

自动下载安装视网络情况,需要几分钟甚至更久,安装后会自动打开:

%title插图%num

 

也可以在如下网址中下载:

https://www.mongodb.com/zh-cn/products/tools/compass 

%title插图%num

 

安装后的欢迎界面:

%title插图%num

 

主界面:

%title插图%num

 

默认可直接连接,无需用户名和密码,默认端口为 27017:

%title插图%num

 

默认为 test 数据库

%title插图%num

 

此时使用代码也可以无用户名密码连接:

%title插图%num 

 

3、设置账号密码

参考文章《MongoDB 数据库设置账号密码完整步骤》进行账号密码设置。

使用 show users​ 可查看用户:

%title插图%num

 

使用如下命令添加一个超级管理员账号 “root”:

use admin 
db.createUser({ user: "root", pwd: "xxx", roles: [{ role: "root", db: "admin" }] })

 

执行结果如下:

%title插图%num

 

然后在 任务管理器 的 服务 标签页中找到 MongoDB 服务,右键 — 重新启动:

%title插图%num

 

此时还是能免密码连接,需要在配置文件中打开验证功能:

%title插图%num

 

在配置文件中添加如下配置:

security: 
  authorization: enabled

 

如图:

%title插图%num

 

再重启 MongoDB 服务,使用 MongoDB Compass 进行连接,提示需要验证,说明配置成功了: 

%title插图%num

 

用户名密码在 MongoDB Compass 的 Authentication 标签页中填写:

%title插图%num

 

在程序中也可以填写用户名密码进行连接了:

%title插图%num

 

4、开启事务支持

4.1、单点服务不支持事务

Demo 中加了个是否使用事务的开关,点击连接时配置生效,读取是都没有使用事务的,所以读取是都能成功的:

%title插图%num

 

当不使用事务时,删除和编辑也是成功的:

%title插图%num

 

如果勾上使用事务,连接、读取都正常,删除和编辑则会失败:

%title插图%num

%title插图%num

 

异常为:System.NotSupportedException: Standalone servers do not support transactions. 就是说:单点服务不支持事务。

 

下面来开启事务支持。
 

4.2、添加配置

在配置文件中添加:

replication: 
  replSetName: rs0

 

如下图:

%title插图%num

 

4.3、生成 keyFile 并配置

然后重启 MongoDB 服务。但是可能会发现服务启不起来了,使用命令行启动(具体指令可在服务属性中找到)可以看到错误信息:

%title插图%num

 

也就是说同时开启了 验证(用户名密码)和 副本集(replica sets),则需要 security.keyFile。

 

这个文件需要使用 OpenSSL 来生成,下载地址为:https://slproweb.com/products/Win32OpenSSL.html 

%title插图%num

 

下载安装后,使用安装目录的 start.bat 即可打开:

%title插图%num

 

执行命令 openssl rand -base64 756 > D:\MongoDB\security.keyFile 来生成文件:

%title插图%num

 

然后编辑 MongoDB 的配置文件,填写 KeyFile 文件的地址(keyFile: D:\MongoDB\security.keyFile):

%title插图%num

 

此时再重启 MongoDB 服务即可顺利重启:

%title插图%num

 

4.4、初始化副本集并简单测试

还没完,还需要打开 MongoDB Compass,在下方的 MONGOSH 窗口中,执行命令 rs.initiate() 对副本集进行初始化,如下所示:

%title插图%num

 

这样就开启了 MongoDB 的事务支持。

 

简单测试一下,在使用事务的情况下,更新和删除都是没问题的:

%title插图%num

 

5、资源

5.1、增删改查演示 Demo

源码地址:https://gitee.com/dlgcy/DLGCY_WPFPractice/tree/Blog20240105 

%title插图%num

 

5.2、MongoDB 帮助类

代码地址:https://gitee.com/dlgcy/dotnetcodes/blob/dlgcy/DotNet.Utilities/ 数据库操作 / MongoDB/MongoDbHelper.cs

%title插图%num

 

原创文章,转载请注明: 转载自 独立观察员(dlgcy.com)

本文链接地址: [MongoDB 安装、设置密码、开启事务支持](https://dlgcy.com/mongodb-password-transaction/)

关注微信公众号 独立观察员博客(DLGCY_BLOG) 第一时间获取最新文章

%title插图%num

发表评论