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