MongoDB 安装、设置密码、开启事务支持
1、安装 MongoDB
中文官网:https://www.mongodb.com/zh-cn
使用社区版:
在打开的页面选择版本并下载(本文的版本为 MongoDB 7.0.4):
安装过程展示 1(可以安到 D 盘):
安装过程展示 2(MongoDB Compass 可自动下载安装,或者取消勾选后面手动安装):
2、安装 MongoDB Compass
自动下载安装视网络情况,需要几分钟甚至更久,安装后会自动打开:
也可以在如下网址中下载:
https://www.mongodb.com/zh-cn/products/tools/compass
安装后的欢迎界面:
主界面:
默认可直接连接,无需用户名和密码,默认端口为 27017:
默认为 test 数据库:
此时使用代码也可以无用户名密码连接:
3、设置账号密码
参考文章《MongoDB 数据库设置账号密码完整步骤》进行账号密码设置。
使用 show users
可查看用户:
使用如下命令添加一个超级管理员账号 “root”:
use admin db.createUser({ user: "root", pwd: "xxx", roles: [{ role: "root", db: "admin" }] })
执行结果如下:
然后在 任务管理器 的 服务 标签页中找到 MongoDB 服务,右键 — 重新启动:
此时还是能免密码连接,需要在配置文件中打开验证功能:
在配置文件中添加如下配置:
security: authorization: enabled
如图:
再重启 MongoDB 服务,使用 MongoDB Compass 进行连接,提示需要验证,说明配置成功了:
用户名密码在 MongoDB Compass 的 Authentication 标签页中填写:
在程序中也可以填写用户名密码进行连接了:
4、开启事务支持
4.1、单点服务不支持事务
在 Demo 中加了个是否使用事务的开关,点击连接时配置生效,读取是都没有使用事务的,所以读取是都能成功的:
当不使用事务时,删除和编辑也是成功的:
如果勾上使用事务,连接、读取都正常,删除和编辑则会失败:
异常为:System.NotSupportedException: Standalone servers do not support transactions. 就是说:单点服务不支持事务。
下面来开启事务支持。
4.2、添加配置
在配置文件中添加:
如下图:
4.3、生成 keyFile 并配置
然后重启 MongoDB 服务。但是可能会发现服务启不起来了,使用命令行启动(具体指令可在服务属性中找到)可以看到错误信息:
也就是说同时开启了 验证(用户名密码)和 副本集(replica sets),则需要 security.keyFile。
这个文件需要使用 OpenSSL 来生成,下载地址为:https://slproweb.com/products/Win32OpenSSL.html
下载安装后,使用安装目录的 start.bat 即可打开:
执行命令 openssl rand -base64 756 > D:\MongoDB\security.keyFile
来生成文件:
然后编辑 MongoDB 的配置文件,填写 KeyFile 文件的地址(keyFile: D:\MongoDB\security.keyFile
):
此时再重启 MongoDB 服务即可顺利重启:
4.4、初始化副本集并简单测试
还没完,还需要打开 MongoDB Compass,在下方的 MONGOSH 窗口中,执行命令 rs.initiate()
对副本集进行初始化,如下所示:
这样就开启了 MongoDB 的事务支持。
简单测试一下,在使用事务的情况下,更新和删除都是没问题的:
5、资源
5.1、增删改查演示 Demo
源码地址:https://gitee.com/dlgcy/DLGCY_WPFPractice/tree/Blog20240105
5.2、MongoDB 帮助类
代码地址:https://gitee.com/dlgcy/dotnetcodes/blob/dlgcy/DotNet.Utilities/ 数据库操作 / MongoDB/MongoDbHelper.cs
原创文章,转载请注明: 转载自 独立观察员(dlgcy.com)
本文链接地址: [MongoDB 安装、设置密码、开启事务支持](https://dlgcy.com/mongodb-password-transaction/)
关注微信公众号 独立观察员博客(DLGCY_BLOG) 第一时间获取最新文章
发表评论