在window下将Mongodb单机改为副本集,只用于测试环境,实际上并没有增加真的副本集

1.修改mongod.cfg配置文件

在你安装mongodb的文件目录中找到bin/然后找到mongod.cfg

注意下面的格式,不能用tab键进行缩进,字段冒号后面必须有空格

bash 复制代码
storage:
  dbPath: D:\xuenodejs\mongoData

systemLog:
  destination: file
  logAppend: true
  path: D:\xuenodejs\mongoLogs\mongod.log

net:
  port: 28017
  bindIp: 127.0.0.1

security:
  authorization: enabled
  keyFile: D:\xuenodejs\mongoLogs\mongo-keyfile

replication:
  replSetName: rs0

关于keyFile: D:\xuenodejs\mongoLogs\mongo-keyfile文件的生成

你可以用openssl 生成,生成命令如下

bash 复制代码
openssl rand -base64 756 > /path/to/mongo-keyfile
chmod 400 /path/to/mongo-keyfile  # 限制权限

2.首先用管理员身份打开window powershell

以管理员身份运行 PowerShell,执行:

Restart-Service -Name "MongoDB" -Force

或者停止后再启动

Stop-Service -Name "MongoDB"

Start-Service -Name "MongoDB"

3.登陆mongodb,用mongosh登陆,记住必须 是admin身份登陆

如果你是创建的新数据库应该先运行配置文件

mongod --config "d:/xuenodejs/backend/mongod2.cfg"

直接连接本地

mongosh

或指定端口、认证

mongosh --port 28017 -u admin -p

进入后切换到 admin 库

use admin

4.初始化副本集

bash 复制代码
// 初始化单节点副本集
rs.initiate({
    _id: "rs0",
    members: [{ _id: 0, host: "localhost:28017" }]
});

// 等待几秒,查看状态
rs.status();

// 确认自己是 PRIMARY 后,退出
exit;

5.修改你后端的连接地址,我是nodejs的

bash 复制代码
#urlPath='mongodb://admin:123456@localhost:28017/?authSource=admin&replicaSet=rs0';

// 关键是加上 &replicaSet=rs0

这样你就可以在nodejs中测试用mongodb的副本集了,比如用watch()监听insert/update/delete/change等方面的事件程序了,这些可以写成监听生成新的订单,新的工单,或是生成了新的通知等等,然后将新生成的文章通知用户或是管理员

相关推荐
葫芦和十三12 小时前
图解 MongoDB 02|BSON:你以为存的是 JSON,其实是带类型的二进制
后端·mongodb·agent
葫芦和十三12 小时前
图解 MongoDB 01|文档数据库
后端·mongodb·agent
倔强的石头_1 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
冬奇Lab2 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence2 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神2 天前
三、用户与权限管理
数据库·mysql
✎ ﹏梦醒͜ღ҉繁华落℘3 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
麦聪聊数据3 天前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
DARLING Zero two♡3 天前
【MySQL数据库】数据类型与表约束
数据库·mysql