在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等方面的事件程序了,这些可以写成监听生成新的订单,新的工单,或是生成了新的通知等等,然后将新生成的文章通知用户或是管理员

相关推荐
瀚高PG实验室11 分钟前
使用pg_stat_statements抓取数据库TOP SQL
数据库·sql·postgresql·瀚高数据库
yanwumuxi2 小时前
【数据库系列】opensearch数据备份和恢复
数据库
anxiao_m2 小时前
2026企业AI数字孪生选型攻略,不同场景对应不同解决方案
大数据·网络·数据库
SelectDB2 小时前
从 ClickHouse 迁移到 Doris:SQL 兼容、同步与验证清单(实战笔记)
大数据·数据库·数据分析
SelectDB2 小时前
Doris 还是 ClickHouse?一张表说清 6 个关键差异(实战笔记)
大数据·数据库·数据分析
oradh3 小时前
Oracle Undo问题总结(两类Undo表空间不足和单个会话占用大量Undo的性能问题)
数据库·oracle
企业数字化笔记3 小时前
固定资产财务账与实物账怎么对账?折旧快照、差异检测与SQL核对
android·数据库·sql
DBA_G3 小时前
GBase 8a表空间多路径存储数据迁移链路适配解析
数据库·oracle
java1234_小锋3 小时前
Tornado 6.5,全面支持 Python 3.14
数据库·python·tornado
jyOverQ3 小时前
MySQL 事务到底是什么?ACID 四大特性与隔离级别怎么理解?
数据库·mysql