windows mongo 开启副本集 6.x版本 mongo : 无法将“mongo”项识别为 cmdlet、函数、脚

mongo报错

当前使用版本6.0.3,bin目录下并没有mongo.exe,所以没有mongo命令,

需要下载 https://www.mongodb.com/try/download/shell 解压放到 bin目录。

ps:新版本的一些备份恢复工具也没有,如果需要,同样需要下载放进去。

本地开启三个不同端口的mongo服务组成副本集

首先关闭已启动的服务,通过任务管理器直接停止或者命令行:net stop mongodb。

建立三个目录存放数据:

D:\mongoDB> mkdir D:\mongoDB\mdb0\data
D:\mongoDB> mkdir D:\mongoDB\mdb1\data
D:\mongoDB> mkdir D:\mongoDB\mdb2\data

到bin目录下启动三个服务(三个命令窗口):

D:\MongoDB\bin mongod --replSet mdb --port 27017 --dbpath D:\mongoDB\mdb0\data  --oplogSize 128

D:\MongoDB\bin mongod --replSet mdb --port 27018 --dbpath D:\mongoDB\mdb1\data --oplogSize 128

D:\MongoDB\bin mongod --replSet mdb --port 27019 --dbpath D:\mongoDB\mdb2\data --oplogSize 128

mongosh连接db,初始化副本集,默认不传参数就单个自己:

D:\MongoDB\bin mongosh --port 27017
rs.initiate()

默认初始化过后再重新初始化配置:

rs.reconfig(
  { _id: "mdb", members: [{ _id: 0, host: "127.0.0.1:27017" }, { _id: 1, host: "127.0.0.1:27018" }, { _id: 2, host: "127.0.0.1:27019" }] },
  {"force":true}
  )

设置副本节点可读(需要的节点都需要执行):

db.getMongo().setReadPref()

其他操作 https://www.mongodb.com/docs/manual/reference/replication/

 修改配置文件,服务自启动

初始化成功以后即可使用服务指定启动配置自己运行。

三个节点配置对应修改即可(格式严格不然会出错):

# Where and how to store data.
storage:
  dbPath: D:\mongoDB\mdb0\data
  journal:
    enabled: true
# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: D:\mongoDB\mdb0\log\mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1

# --replSet mdb 对应的 Name
replication: 
  oplogSizeMB: 128
  replSetName: mdb

 

管理员启动命令行(文件名有空格会出错):

sc.exe create MDB0 binPath= "D:/MongoDB/bin/mongod.exe --config D:/mongoDB/mdb0/mdb0.cfg --service" DisplayName= "MDB0" start= "auto"

删除:

sc.exe delete MDB0

 

posted @ 2022-12-07 12:34  飞叶飞花  阅读(374)  评论(0编辑  收藏  举报