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

相关推荐
xcjbqd02 小时前
如何修改Oracle服务器默认的日期格式_NLS_DATE_FORMAT全局配置
jvm·数据库·python
HealthScience2 小时前
SpliceVarDB数据集说明
数据库·oracle
倔强的石头_2 小时前
表空间自动目录创建与存储管理实践:参数化配置与性能优化
数据库
white-persist2 小时前
【vulhub spring CVE-2018-1270】CVE-2018-1270 Spring Messaging 远程命令执行漏洞 完整复现详细分析解释
java·服务器·网络·数据库·后端·python·spring
鬼先生_sir2 小时前
MySQL进阶-事务与锁机制
数据库·mysql·mvcc
treacle田3 小时前
达梦数据库-达梦数据库中link链接访问远程Sql Sever-记录总结
数据库·达梦-sqlserver
ClouGence3 小时前
不用搭复杂系统,也能做跨地域数据迁移?
大数据·数据库·saas
xcjbqd03 小时前
SQL中视图能否嵌套存储过程_实现复杂自动化报表逻辑
jvm·数据库·python
听*雨声3 小时前
软件设计师上午题5:数据库
数据库