MongoDB3.2如何升级至3.4.6,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。MongoDB 升级测试步骤:1、MongoDB版本升级顺序3.2->3.4->3.6->4.0 不能跨版本升级2、升级到3.4后,您不能降级到3.2.7或更早版本。您只能降级到3.2.8或更高版本3、先升级所有副本集中的Secondary4、将Primary节点降级为Secondary节点5、升级Primary6、MongoDB3.2升级到3.4,登录后查看版本信息若还是3.2,执行db.adminCommand( { setFeatureCompatibilityVersion: “3.4” } )7、MongoDB3.4升级到3.6,登录后查看版本信息若还是3.4,执行db.adminCommand( { setFeatureCompatibilityVersion: “3.6” } )8、MongoDB3.6升级到4.0,登录后查看版本信息若还是3.6,执行db.adminCommand( { setFeatureCompatibilityVersion: “4.0” } )###只在升级到4.0执行### cfg = rs.conf(); cfg.protocolVersion=1; rs.reconfig(cfg);查看MongoDB进程:[root@127.0.0.1 bin]# ps -ef | grep mongoroot 17908 9428 0 20:43 pts/1 00:00:00 grep mongoroot 47265 1 0 Oct09 ? 00:09:38 /u02/mongodb/mongodb/bin/mongod -f /u02/mongodb/mongodb/2777/conf/mongodb_2777.confroot 179052 1 0 Oct09 ? 00:05:27 /u02/mongodb/mongodb/bin/mongod -f /u02/mongodb/mongodb/5777/conf/mongodb_5777.confroot 180521 1 2 Oct08 ? 00:59:01 /u02/mongodb/mongodb/bin/mongod -f /u02/mongodb/mongodb/3777/conf/mongodb_3777.confroot 185602 1 0 Oct08 ? 00:08:30 /u02/mongodb/mongodb/bin/mongod -f /u02/mongodb/mongodb/4777/conf/mongodb_4777.conf端口5777为Primary,2777,3777,4777为Secondary登录副本集查看副本集信息:[root@127.0.0.1 bin]# /u02/mongodb/mongodb/bin/mongo –port 5777MongoDB shell version: 3.2.6connecting to: 127.0.0.1:5777/testServer has startup warnings:2019-10-09T15:08:26.464+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.2019-10-09T15:08:26.464+0800 I CONTROL [initandlisten]2019-10-09T15:08:26.465+0800 I CONTROL [initandlisten]2019-10-09T15:08:26.465+0800 I CONTROL [initandlisten] ** WARNING: You are running on a NUMA machine.2019-10-09T15:08:26.465+0800 I CONTROL [initandlisten] ** We suggest launching mongod like this to avoid performance problems:2019-10-09T15:08:26.465+0800 I CONTROL [initandlisten] ** numactl –interleave=all mongod [other options]2019-10-09T15:08:26.465+0800 I CONTROL [initandlisten]shard1:PRIMARY> rs.status(){ “set” : “shard1”, “date” : ISODate(“2019-10-10T12:42:36.196Z”), “myState” : 1, “term” : NumberLong(4), “heartbeatIntervalMillis” : NumberLong(2000), “members” : [ { “_id” : 1, “name” : “127.0.0.1:3777”, “health” : 1, “state” : 2, “stateStr” : “SECONDARY”, “uptime” : 106410, “optime” : { “ts” : Timestamp(1570711316, 2), “t” : NumberLong(4) }, “optimeDate” : ISODate(“2019-10-10T12:41:56Z”), “lastHeartbeat” : ISODate(“2019-10-10T12:42:34.326Z”), “lastHeartbeatRecv” : ISODate(“2019-10-10T12:42:35.321Z”), “pingMs” : NumberLong(0), “syncingTo” : “127.0.0.1:5777”, “configVersion” : 21 }, { “_id” : 2, “name” : “127.0.0.1:4777”, “health” : 1, “state” : 2, “stateStr” : “SECONDARY”, “uptime” : 106410, “optime” : { “ts” : Timestamp(1570711316, 2), “t” : NumberLong(4) }, “optimeDate” : ISODate(“2019-10-10T12:41:56Z”), “lastHeartbeat” : ISODate(“2019-10-10T12:42:34.324Z”), “lastHeartbeatRecv” : ISODate(“2019-10-10T12:42:35.321Z”), “pingMs” : NumberLong(0), “syncingTo” : “127.0.0.1:5777”, “configVersion” : 21 }, { “_id” : 3, “name” : “127.0.0.1:5777”, “health” : 1, “state” : 1, “stateStr” : “PRIMARY”, “uptime” : 106450, “optime” : { “ts” : Timestamp(1570711316, 2), “t” : NumberLong(4) }, “optimeDate” : ISODate(“2019-10-10T12:41:56Z”), “electionTime” : Timestamp(1570711316, 1), “electionDate” : ISODate(“2019-10-10T12:41:56Z”), “configVersion” : 21, “self” : true }, { “_id” : 4, “name” : “127.0.0.1:2777”, “health” : 1, “state” : 2, “stateStr” : “SECONDARY”, “uptime” : 100601, “optime” : { “ts” : Timestamp(1570711316, 2), “t” : NumberLong(4) }, “optimeDate” : ISODate(“2019-10-10T12:41:56Z”), “lastHeartbeat” : ISODate(“2019-10-10T12:42:34.324Z”), “lastHeartbeatRecv” : ISODate(“2019-10-10T12:42:35.319Z”), “pingMs” : NumberLong(0), “syncingTo” : “127.0.0.1:5777”, “configVersion” : 21 } ], “ok” : 1}将mongodb-linux-x86_64-rhel62-3.4.6.tgz放在/opt下解压后改名[root@127.0.0.1 bin]# lsbsondump mongo mongod mongodump mongoexport mongofiles mongoimport mongooplog mongoperf mongoreplay mongorestore mongos mongostat mongotop[root@127.0.0.1 bin]# pwd/opt/mongodb_3_4/bin删除副本:shard1:PRIMARY> rs.remove(“127.0.0.1:2777”)关闭2777端口mongo[root@127.0.0.1 bin]# /mongodb/mongodb/bin/mongod -f /u02/mongodb/mongodb/2777/conf/mongodb_2777.conf –shutdown通过mongodb3.4启动端口2777mongo,升级至3.4/opt/mongodb_3_4/bin/mongod -f /u02/mongodb/mongodb/2777/conf/mongodb_2777.conf登录mongo查看版本信息[root@127.0.0.1 bin]# /opt/mongodb_3_4/bin/mongo –port 2777MongoDB shell version v3.4.6connecting to: mongodb://127.0.0.1:2777/MongoDB server version: 3.4.6Server has startup warnings:2019-10-09T16:41:23.659+0800 I CONTROL [initandlisten]2019-10-09T16:41:23.659+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.2019-10-09T16:41:23.659+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.2019-10-09T16:41:23.659+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.2019-10-09T16:41:23.659+0800 I CONTROL [initandlisten]2019-10-09T16:41:23.660+0800 I CONTROL [initandlisten]2019-10-09T16:41:23.660+0800 I CONTROL [initandlisten] ** WARNING: You are running on a NUMA machine.2019-10-09T16:41:23.660+0800 I CONTROL [initandlisten] ** We suggest launching mongod like this to avoid performance problems:2019-10-09T16:41:23.660+0800 I CONTROL [initandlisten] ** numactl –interleave=all mongod [other options]2019-10-09T16:41:23.660+0800 I CONTROL [initandlisten]将端口2777mongo添加到副本集shard1:PRIMARY> rs.add(“127.0.0.1:2777”)查看2777端口副本集信息shard1:PRIMARY> rs.status(){ “set” : “shard1”, “date” : ISODate(“2019-10-10T12:49:24.623Z”), “myState” : 1, “term” : NumberLong(4), “heartbeatIntervalMillis” : NumberLong(2000), “members” : [ { “_id” : 1, “name” : “127.0.0.1:3777”, “health” : 1, “state” : 2, “stateStr” : “SECONDARY”, “uptime” : 106819, “optime” : { “ts” : Timestamp(1570711316, 2), “t” : NumberLong(4) }, “optimeDate” : ISODate(“2019-10-10T12:41:56Z”), “lastHeartbeat” : ISODate(“2019-10-10T12:49:24.438Z”), “lastHeartbeatRecv” : ISODate(“2019-10-10T12:49:23.376Z”), “pingMs” : NumberLong(0), “syncingTo” : “127.0.0.1:5777”, “configVersion” : 21 }, { “_id” : 2, “name” : “127.0.0.1:4777”, “health” : 1, “state” : 2, “stateStr” : “SECONDARY”, “uptime” : 106819, “optime” : { “ts” : Ti免费主机域名mestamp(1570711316, 2), “t” : NumberLong(4) }, “optimeDate” : ISODate(“2019-10-10T12:41:56Z”), “lastHeartbeat” : ISODate(“2019-10-10T12:49:24.438Z”), “lastHeartbeatRecv” : ISODate(“2019-10-10T12:49:23.374Z”), “pingMs” : NumberLong(0), “syncingTo” : “127.0.0.1:5777”, “configVersion” : 21 }, { “_id” : 3, “name” : “127.0.0.1:5777”, “health” : 1, “state” : 1, “stateStr” : “PRIMARY”, “uptime” : 106858, “optime” : { “ts” : Timestamp(1570711316, 2), “t” : NumberLong(4) }, “optimeDate” : ISODate(“2019-10-10T12:41:56Z”), “electionTime” : Timestamp(1570711316, 1), “electionDate” : ISODate(“2019-10-10T12:41:56Z”), “configVersion” : 21, “self” : true }, { “_id” : 4, “name” : “127.0.0.1:2777”, “health” : 1, “state” : 2, “stateStr” : “SECONDARY”, “uptime” : 101009, “optime” : { “ts” : Timestamp(1570711316, 2), “t” : NumberLong(4) }, “optimeDate” : ISODate(“2019-10-10T12:41:56Z”), “lastHeartbeat” : ISODate(“2019-10-10T12:49:24.405Z”), “lastHeartbeatRecv” : ISODate(“2019-10-10T12:49:23.375Z”), “pingMs” : NumberLong(0), “syncingTo” : “127.0.0.1:5777”, “configVersion” : 21 } ], “ok” : 1}登录mongo3.4版本2777端口查询数据测试[root@127.0.0.1 bin]# /opt/mongodb_3_4/bin/mongo –port 2777 MongoDB shell version v3.4.6connecting to: mongodb://127.0.0.1:2777/MongoDB server version: 3.4.6Server has startup warnings:2019-10-09T16:41:23.659+0800 I CONTROL [initandlisten]2019-10-09T16:41:23.659+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.2019-10-09T16:41:23.659+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.2019-10-09T16:41:23.659+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.2019-10-09T16:41:23.659+0800 I CONTROL [initandlisten]2019-10-09T16:41:23.660+0800 I CONTROL [initandlisten]2019-10-09T16:41:23.660+0800 I CONTROL [initandlisten] ** WARNING: You are running on a NUMA machine.2019-10-09T16:41:23.660+0800 I CONTROL [initandlisten] ** We suggest launching mongod like this to avoid performance problems:2019-10-09T16:41:23.660+0800 I CONTROL [initandlisten] ** numactl –interleave=all mongod [other options]2019-10-09T16:41:23.660+0800 I CONTROL [initandlisten]shard1:SECONDARY> rs.slaveOk()shard1:SECONDARY> show dbslocal 0.001GBtest 0.000GByoon 0.000GBshard1:SECONDARY> use yoonswitched to db yoonshard1:SECONDARY> show collectionsmovieshard1:SECONDARY> db.movie.find(){ “_id” : ObjectId(“5d9c7ee9d7a8df8fd023d6ed”), “name” : “hank” }{ “_id” : ObjectId(“5d9d9d5d159fa59c5d01985a”), “hname” : “yoon” }{ “_id” : ObjectId(“5d9d9e33159fa59c5d01985b”), “yname” : “hankyoon” }通过mongodb3.4启动端口3777mongo,升级至3.4[root@127.0.0.1 bin]# /u02/mongodb/mongodb/bin/mongo –port 5777MongoDB shell version: 3.2.6connecting to: 127.0.0.1:5777/testServer has startup warnings:2019-10-09T15:08:26.464+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.2019-10-09T15:08:26.464+0800 I CONTROL [initandlisten]2019-10-09T15:08:26.465+0800 I CONTROL [initandlisten]2019-10-09T15:08:26.465+0800 I CONTROL [initandlisten] ** WARNING: You are running on a NUMA machine.2019-10-09T15:08:26.465+0800 I CONTROL [initandlisten] ** We suggest launching mongod like this to avoid performance problems:2019-10-09T15:08:26.465+0800 I CONTROL [initandlisten] ** numactl –interleave=all mongod [other options]2019-10-09T15:08:26.465+0800 I CONTROL [initandlisten]shard1:PRIMARY> rs.remove(“127.0.0.1:3777”){ “ok” : 1 }shard1:PRIMARY> rs.status(){ “set” : “shard1”, “date” : ISODate(“2019-10-10T12:52:37.517Z”), “myState” : 1, “term” : NumberLong(4), “heartbeatIntervalMillis” : NumberLong(2000), “members” : [ { “_id” : 2, “name” : “127.0.0.1:4777”, “health” : 1, “state” : 2, “stateStr” : “SECONDARY”, “uptime” : 107011, “optime” : { “ts” : Timestamp(1570711953, 1), “t” : NumberLong(4) }, “optimeDate” : ISODate(“2019-10-10T12:52:33Z”), “lastHeartbeat” : ISODate(“2019-10-10T12:52:37.379Z”), “lastHeartbeatRecv” : ISODate(“2019-10-10T12:52:37.379Z”), “pingMs” : NumberLong(0), “syncingTo” : “127.0.0.1:5777”, “configVersion” : 22 }, { “_id” : 3, “name” : “127.0.0.1:5777”, “health” : 1, “state” : 1, “stateStr” : “PRIMARY”, “uptime” : 107051, “optime” : { “ts” : Timestamp(1570711953, 1), “t” : NumberLong(4) }, “optimeDate” : ISODate(“2019-10-10T12:52:33Z”), “electionTime” : Timestamp(1570711316, 1), “electionDate” : ISODate(“2019-10-10T12:41:56Z”), “configVersion” : 22, “self” : true }, { “_id” : 4, “name” : “127.0.0.1:2777”, “health” : 1, “state” : 2, “stateStr” : “SECONDARY”, “uptime” : 101202, “optime” : { “ts” : Timestamp(1570711953, 1), “t” : NumberLong(4) }, “optimeDate” : ISODate(“2019-10-10T12:52:33Z”), “lastHeartbeat” : ISODate(“2019-10-10T12:52:37.379Z”), “lastHeartbeatRecv” : ISODate(“2019-10-10T12:52:37.379Z”), “pingMs” : NumberLong(0), “syncingTo” : “127.0.0.1:5777”, “configVersion” : 22 } ], “ok” : 1}[root@127.0.0.1 bin]# /u02/mongodb/mongodb/bin/mongod -f /u02/mongodb/mongodb/3777/conf/mongodb_3777.conf –shutdownkilling process with pid: 180521[root@127.0.0.1 bin]# /opt/mongodb_3_4/bin/mongod -f /u02/mongodb/mongodb/3777/conf/mongodb_3777.confabout to fork child process, waiting until server is ready for connections.forked process: 25117child process started successfully, parent exiting[root@127.0.0.1 bin]# /opt/mongodb_3_4/bin/mongo –port 3777MongoDB shell version v3.4.6connecting to: mongodb://127.0.0.1:3777/MongoDB server version: 3.4.6Server has startup warnings:2019-10-10T20:53:40.536+0800 I CONTROL [initandlisten]2019-10-10T20:53:40.536+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.2019-10-10T20:53:40.536+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.2019-10-10T20:53:40.536+0800 I CONTROL [initandlisten] ** WARNING: You are run免费主机域名ning this process as the root user, which is not recommended.2019-10-10T20:53:40.536+0800 I CONTROL [initandlisten]2019-10-10T20:53:40.537+0800 I CONTROL [initandlisten]2019-10-10T20:53:40.537+0800 I CONTROL [initandlisten] ** WARNING: You are running on a NUMA machine.2019-10-10T20:53:40.537+0800 I CONTROL [initandlisten] ** We suggest launching mongod like this to avoid performance problems:2019-10-10T20:53:40.537+0800 I CONTROL [initandlisten] ** numactl –interleave=all mongod [other options]2019-10-10T20:53:40.537+0800 I CONTROL [initandlisten]shard1:OTHER> 3777端口升级至3.4.6版本,将3777端口加入副本集[root@127.0.0.1 bin]# /u02/mongodb/mongodb/bin/mongo –port 5777MongoDB shell version: 3.2.6connecting to: 127.0.0.1:5777/testServer has startup warnings:2019-10-09T15:08:26.464+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.2019-10-09T15:08:26.464+0800 I CONTROL [initandlisten]2019-10-09T15:08:26.465+0800 I CONTROL [initandlisten]2019-10-09T15:08:26.465+0800 I CONTROL [initandlisten] ** WARNING: You are running on a NUMA machine.2019-10-09T15:08:26.465+0800 I CONTROL [initandlisten] ** We suggest launching mongod like this to avoid performance problems:2019-10-09T15:08:26.465+0800 I CONTROL [initandlisten] ** numactl –interleave=all mongod [other options]2019-10-09T15:08:26.465+0800 I CONTROL [initandlisten]shard1:PRIMARY> rs.add(“127.0.0.1:3777”){ “ok” : 1 }shard1:PRIMARY> rs.status(){ “set” : “shard1”, “date” : ISODate(“2019-10-10T12:55:20.927Z”), “myState” : 1, “term” : NumberLong(4), “heartbeatIntervalMillis” : NumberLong(2000), “members” : [ { “_id” : 2, “name” : “127.0.0.1:4777”, “health” : 1, “state” : 2, “stateStr” : “SECONDARY”, “uptime” : 107175, “optime” : { “ts” : Timestamp(1570712117, 1), “t” : NumberLong(4) }, “optimeDate” : ISODate(“2019-10-10T12:55:17Z”), “lastHeartbeat” : ISODate(“2019-10-10T12:55:19.964Z”), “lastHeartbeatRecv” : ISODate(“2019-10-10T12:55:19.964Z”), “pingMs” : NumberLong(0), “syncingTo” : “127.0.0.1:5777”, “configVersion” : 23 }, { “_id” : 3, “name” : “127.0.0.1:5777”, “health” : 1, “state” : 1, “stateStr” : “PRIMARY”, “uptime” : 107214, “optime” : { “ts” : Timestamp(1570712117, 1), “t” : NumberLong(4) }, “optimeDate” : ISODate(“2019-10-10T12:55:17Z”), “electionTime” : Timestamp(1570711316, 1), “electionDate” : ISODate(“2019-10-10T12:41:56Z”), “configVersion” : 23, “self” : true }, { “_id” : 4, “name” : “127.0.0.1:2777”, “health” : 1, “state” : 2, “stateStr” : “SECONDARY”, “uptime” : 101365, “optime” : { “ts” : Timestamp(1570712117, 1), “t” : NumberLong(4) }, “optimeDate” : ISODate(“2019-10-10T12:55:17Z”), “lastHeartbeat” : ISODate(“2019-10-10T12:55:19.964Z”), “lastHeartbeatRecv” : ISODate(“2019-10-10T12:55:19.965Z”), “pingMs” : NumberLong(0), “syncingTo” : “127.0.0.1:5777”, “configVersion” : 23 }, { “_id” : 5, “name” : “127.0.0.1:3777”, “health” : 1, “state” : 5, “stateStr” : “STARTUP2”, “uptime” : 0, “optime” : { “ts” : Timestamp(1570711953, 1), “t” : NumberLong(4) }, “optimeDate” : ISODate(“2019-10-10T12:52:33Z”), “lastHeartbeat” : ISODate(“2019-10-10T12:55:19.964Z”), “lastHeartbeatRecv” : ISODate(“2019-10-10T12:55:17.966Z”), “pingMs” : NumberLong(0), “configVersion” : 23 } ], “ok” : 1}在Primary插入一条新数据在3777端口查询测试查看DBshard1:PRIMARY> show dbslocal 0.001GBtest 0.000GByoon 0.000GB连接DBshard1:PRIMARY> use yoonswitched to db yoon查看DB下表shard1:PRIMARY> show collections;movie查询数据shard1:PRIMARY> db.movie.find(){ “_id” : ObjectId(“5d9c7ee9d7a8df8fd023d6ed”), “name” : “hank” }{ “_id” : ObjectId(“5d9d9d5d159fa59c5d01985a”), “hname” : “yoon” }{ “_id” : ObjectId(“5d9d9e33159fa59c5d01985b”), “yname” : “hankyoon” }当前连接DBshard1:PRIMARY> dbyoon插入一条新数据shard1:PRIMARY> db.movie.insert({“kname”:”shouqi”})WriteResult({ “nInserted” : 1 })查询数据shard1:PRIMARY> db.movie.find(){ “_id” : ObjectId(“5d9c7ee9d7a8df8fd023d6ed”), “name” : “hank” }{ “_id” : ObjectId(“5d9d9d5d159fa59c5d01985a”), “hname” : “yoon” }{ “_id” : ObjectId(“5d9d9e33159fa59c5d01985b”), “yname” : “hankyoon” }{ “_id” : ObjectId(“5d9f2aacdaabe0e11aebef86”), “kname” : “shouqi” }登录2777和3777端口分别查看{ “_id” : ObjectId(“5d9f2aacdaabe0e11aebef86”), “kname” : “shouqi” }[root@127.0.0.1 bin]# /opt/mongodb_3_4/bin/mongo –port 2777MongoDB shell version v3.4.6connecting to: mongodb://127.0.0.1:2777/MongoDB server version: 3.4.6Server has startup warnings:2019-10-09T16:41:23.659+0800 I CONTROL [initandlisten]2019-10-09T16:41:23.659+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.2019-10-09T16:41:23.659+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.2019-10-09T16:41:23.659+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.2019-10-09T16:41:23.659+0800 I CONTROL [initandlisten]2019-10-09T16:41:23.660+0800 I CONTROL [initandlisten]2019-10-09T16:41:23.660+0800 I CONTROL [initandlisten] ** WARNING: You are running on a NUMA machine.2019-10-09T16:41:23.660+0800 I CONTROL [initandlisten] ** We suggest launching mongod like this to avoid performance problems:2019-10-09T16:41:23.660+0800 I CONTROL [initandlisten] ** numactl –interleave=all mongod [other options]2019-10-09T16:41:23.660+0800 I CONTROL [initandlisten]shard1:SECONDARY> rs.slaveOk()shard1:SECONDARY> use yoonswitched to db yoonshard1:SECONDARY> db.movie.find(){ “_id” : ObjectId(“5d9c7ee9d7a8df8fd023d6ed”), “name” : “hank” }{ “_id” : ObjectId(“5d9d9d5d159fa59c5d01985a”), “hname” : “yoon” }{ “_id” : ObjectId(“5d9d9e33159fa59c5d01985b”), “yname” : “hankyoon” }{ “_id” : ObjectId(“5d9f2aacdaabe0e11aebef86”), “kname” : “shouqi” }shard1:SECONDARY>[root@127.0.0.1 bin]# /opt/mongodb_3_4/bin/mongo –port 3777MongoDB shell version v3.4.6connecting to: mongodb://127.0.0.1:3777/MongoDB server version: 3.4.6Server has startup warnings:2019-10-10T20:53:40.536+0800 I CONTROL [initandlisten]2019-10-10T20:53:40.536+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.2019-10-10T20:53:40.536+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.2019-10-10T20:53:40.536+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.2019-10-10T20:53:40.536+0800 I CONTROL [initandlisten]2019-10-10T20:53:40.537+0800 I CONTROL [initandlisten]2019-10-10T20:53:40.537+0800 I CONTROL [initandlisten] ** WARNING: You are running on a NUMA machine.2019-10-10T20:53:40.537+0800 I CONTROL [initandlisten] ** We suggest launching mongod like this to avoid performance problems:2019-10-10T20:53:40.537+0800 I CONTROL [initandlisten] ** numactl –interleave=all mongod [other options]2019-10-10T20:53:40.537+0800 I CONTROL [initandlisten]shard1:SECONDARY> rs.slaveOk()shard1:SECONDARY> use yoonswitched to db yoonshard1:SECONDARY> db.movie.find(){ “_id” : ObjectId(“5d9c7ee9d7a8df8fd023d6ed”), “name” : “hank” }{ “_id” : ObjectId(“5d9d9d5d159fa59c5d01985a”), “hname” : “yoon” }{ “_id” : ObjectId(“5d9d9e33159fa59c5d01985b”), “yname” : “hankyoon” }{ “_id” : ObjectId(“5d9f2aacdaabe0e11aebef86”), “kname” : “shouqi” }以此类推升级端口4777,至3.4.6shard1:PRIMARY> rs.remove(“127.0.0.1:4777”){ “ok” : 1 }[root@127.0.0.1 bin]# /u02/mongodb/mongodb/bin/mongod -f /u02/mongodb/mongodb/4777/conf/mongodb_4777.conf –shutdownkilling process with pid: 185602[root@127.0.0.1 bin]# /opt/mongodb_3_4/bin/mongod -f /u02/mongodb/mongodb/4777/conf/mongodb_4777.confabout to fork child process, waiting until server is ready for connections.forked process: 34453child process started successfully, parent exiting[root@127.0.0.1 bin]# /opt/mongodb_3_4/bin/mongo –port 4777 MongoDB shell version v3.4.6connecting to: mongodb://127.0.0.1:4777/MongoDB server version: 3.4.6将4777端口添加到副本集[root@127.0.0.1 bin]# /u02/mongodb/mongodb/bin/mongo –port 5777MongoDB shell version: 3.2.6connecting to: 127.0.0.1:5777/testServer has startup warnings:2019-10-09T15:08:26.464+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.2019-10-09T15:08:26.464+0800 I CONTROL [initandlisten]2019-10-09T15:08:26.465+0800 I CONTROL [initandlisten]2019-10-09T15:08:26.465+0800 I CONTROL [initandlisten] ** WARNING: You are running on a NUMA machine.2019-10-09T15:08:26.465+0800 I CONTROL [initandlisten] ** We suggest launching mongod like this to avoid performance problems:2019-10-09T15:08:26.465+0800 I CONTROL [initandlisten] ** numactl –interleave=all mongod [other options]2019-10-09T15:08:26.465+0800 I CONTROL [initandlisten]shard1:PRIMARY> rs.add(“127.0.0.1:4777”){ “ok” : 1 }shard1:PRIMARY> rs.status(){ “set” : “shard1”, “date” : ISODate(“2019-10-10T13:07:58.679Z”), “myState” : 1, “term” : NumberLong(4), “heartbeatIntervalMillis” : NumberLong(2000), “members” : [ { “_id” : 3, “name” : “127.0.0.1:5777”, “health” : 1, “state” : 1, “stateStr” : “PRIMARY”, “uptime” : 107972, “optime” : { “ts” : Timestamp(1570712875, 1), “t” : NumberLong(4) }, “optimeDate” : ISODate(“2019-10-10T13:07:55Z”), “electionTime” : Timestamp(1570711316, 1), “electionDate” : ISODate(“2019-10-10T12:41:56Z”), “configVersion” : 25, “self” : true }, { “_id” : 4, “name” : “127.0.0.1:2777”, “health” : 1, “state” : 2, “stateStr” : “SECONDARY”, “uptime” : 102123, “optime” : { “ts” : Timestamp(1570712875, 1), “t” : NumberLong(4) }, “optimeDate” : ISODate(“2019-10-10T13:07:55Z”), “lastHeartbeat” : ISODate(“2019-10-10T13:07:57.987Z”), “lastHeartbeatRecv” : ISODate(“2019-10-10T13:07:55.990Z”), “pingMs” : NumberLong(0), “syncingTo” : “127.0.0.1:5777”, “configVersion” : 25 }, { “_id” : 5, “name” : “127.0.0.1:3777”, “health” : 1, “state” : 2, “stateStr” : “SECONDARY”, “uptime” : 758, “optime” : { “ts” : Timestamp(1570712875, 1), “t” : NumberLong(4) }, “optimeDate” : ISODate(“2019-10-10T13:07:55Z”), “lastHeartbeat” : ISODate(“2019-10-10T13:07:57.987Z”), “lastHeartbeatRecv” : ISODate(“2019-10-10T13:07:55.990Z”), “pingMs” : NumberLong(0), “syncingTo” : “127.0.0.1:5777”, “configVersion” : 25 }, { “_id” : 6, “name” : “127.0.0.1:4777”, “health” : 1, “state” : 5, “stateStr” : “STARTUP2”, “uptime” : 0, “optime” : { “ts” : Timestamp(1570712743, 1), “t” : NumberLong(4) }, “optimeDate” : ISODate(“2019-10-10T13:05:43Z”), “lastHeartbeat” : ISODate(“2019-10-10T13:07:57.987Z”), “lastHeartbeatRecv” : ISODate(“2019-10-10T13:07:55.990Z”), “pingMs” : NumberLong(0), “configVersion” : 25 } ], “ok” : 1}将Primary升级至3.4.6将Primary节点降级为Secondary节点,有两种方式,一种是rs.stepDown() , 另一种是通过修改优先级来修改Primaryshard1:PRIMARY> rs.stepDown()或通过优先级来修改PRIMARYshard1:PRIMARY> config=rs.conf() //查看当前配置,存入config变量中shard1:PRIMARY> config.members[0].priority = 50 //修改config变量,第1组成员的优先级为50shard1:PRIMARY> rs.reconfig(config) //配置生效shard1:PRIMARY> rs.config() //查看当前配置{“_id” : “shard1″,”version” : 18,”protocolVersion” : NumberLong(1),”members” : [{“_id” : 1,”host” : “127.0.0.1:3777″,”arbiterOnly” : false,”buildIndexes” : true,”hidden” : false,”priority” : 50,”tags” : {},”slaveDelay” : NumberLong(0),”votes” : 1},{“_id” : 2,”host” : “127.0.0.1:4777″,”arbiterOnly” : false,”buildIndexes” : true,”hidden” : false,”priority” : 1,”tags” : {},”slaveDelay” : NumberLong(0),”votes” : 1},{“_id” : 3,”host” : “127.0.0.1:5777″,”arbiterOnly” : false,”buildIndexes” : true,”hidden” : false,”priority” : 1,”tags” : {},”slaveDelay” : NumberLong(0),”votes” : 1},{“_id” : 4,”host” : “127.0.0.1:2777″,”arbiterOnly” : false,”buildIndexes” : true,”hidden” : false,”priority” : 1, “tags” : {},”slaveDelay” : NumberLong(0),”votes” : 1}],”settings” : {“chainingAllowed” : true,”heartbeatIntervalMillis” : 2000,”heartbeatTimeoutSecs” : 10,”electionTimeoutMillis” : 10000,”getLastErrorModes” : {},”getLastErrorDefaults” : {“w” : 1,”wtimeout” : 0},”replicaSetId” : ObjectId(“5d9c7a7e76695600e03e231f”)}}登录3777端口变为Primary[root@127.0.0.1 bin]# /opt/mongodb_3_4/bin/mongo –port 3777MongoDB shell version v3.4.6connecting to: mongodb://127.0.0.1:3777/MongoDB server version: 3.4.6Server has startup warnings:2019-10-10T20:53:40.536+0800 I CONTROL [initandlisten]2019-10-10T20:53:40.536+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.2019-10-10T20:53:40.536+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.2019-10-10T20:53:40.536+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.2019-10-10T20:53:40.536+0800 I CONTROL [initandlisten]2019-10-10T20:53:40.537+0800 I CONTROL [initandlisten]2019-10-10T20:53:40.537+0800 I CONTROL [initandlisten] ** WARNING: You are running on a NUMA machine.2019-10-10T20:53:40.537+0800 I CONTROL [initandlisten] ** We suggest launching mongod like this to avoid performance problems:2019-10-10T20:53:40.537+0800 I CONTROL [initandlisten] ** numactl –interleave=all mongod [other options]2019-10-10T20:53:40.537+0800 I CONTROL [initandlisten]shard1:PRIMARY>升级5777端口shard1:PRIMARY> rs.remove(“127.0.0.1:5777”){ “ok” : 1 }[root@127.0.0.1 bin]# /u02/mongodb/mongodb/bin/mongod -f /u02/mongodb/mongodb/5777/conf/mongodb_5777.conf –shutdownkilling process with pid: 179052[root@127.0.0.1 bin]# /opt/mongodb_3_4/bin/mongod -f /u02/mongodb/mongodb/5777/conf/mongodb_5777.confabout to fork child process, waiting until server is ready for connections.forked process: 40446child process started successfully, parent exiting[root@127.0.0.1 bin]# /opt/mongodb_3_4/bin/mongo –port 5777MongoDB shell version v3.4.6connecting to: mongodb://127.0.0.1:5777/MongoDB server version: 3.4.6将5777端口添加至副本集[root@127.0.0.1 bin]# /opt/mongodb_3_4/bin/mongo –port 3777MongoDB shell version v3.4.6connecting to: mongodb://127.0.0.1:3777/MongoDB server version: 3.4.6Server has startup warnings:2019-10-10T20:53:40.536+0800 I CONTROL [initandlisten]2019-10-10T20:53:40.536+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.2019-10-10T20:53:40.536+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.2019-10-10T20:53:40.536+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.2019-10-10T20:53:40.536+0800 I CONTROL [initandlisten]2019-10-10T20:53:40.537+0800 I CONTROL [initandlisten]2019-10-10T20:53:40.537+0800 I CONTROL [initandlisten] ** WARNING: You are running on a NUMA machine.2019-10-10T20:53:40.537+0800 I CONTROL [initandlisten] ** We suggest launching mongod like this to avoid performance problems:2019-10-10T20:53:40.537+0800 I CONTROL [initandlisten] ** numactl –interleave=all mongod [other options]2019-10-10T20:53:40.537+0800 I CONTROL [initandlisten]shard1:PRIMARY> rs.add(“127.0.0.1:5777”){ “ok” : 1 }shard1:PRIMARY> rs.status(){ “set” : “shard1”, “date” : ISODate(“2019-10-10T13:16:30.878Z”), “myState” : 1, “term” : NumberLong(5), “heartbeatIntervalMillis” : NumberLong(2000), “optimes” : { “lastCommittedOpTime” : { “ts” : Timestamp(1570713376, 1), “t” : NumberLong(5) }, “appliedOpTime” : { “ts” : Timestamp(1570713376, 1), “t” : NumberLong(5) }, “durableOpTime” : { “ts” : Timestamp(1570713376, 1), “t” : NumberLong(5) } }, “members” : [ { “_id” : 4, “name” : “127.0.0.1:2777”, “health” : 1, “state” : 2, “stateStr” : “SECONDARY”, “uptime” : 1272, “optime” : { “ts” : Timestamp(1570713376, 1), “t” : NumberLong(5) }, “optimeDurable” : { “ts” : Timestamp(1570713376, 1), “t” : NumberLong(5) }, “optimeDate” : ISODate(“2019-10-10T13:16:16Z”), “optimeDurableDate” : ISODate(“2019-10-10T13:16:16Z”), “lastHeartbeat” : ISODate(“2019-10-10T13:16:28.911Z”), “lastHeartbeatRecv” : ISODate(“2019-10-10T13:16:26.912Z”), “pingMs” : NumberLong(0), “configVersion” : 28 }, { “_id” : 5, “name” : “127.0.0.1:3777”, “health” : 1, “state” : 1, “stateStr” : “PRIMARY”, “uptime” : 1370, “optime” : { “ts” : Timestamp(1570713376, 1), “t” : NumberLong(5) }, “optimeDate” : ISODate(“2019-10-10T13:16:16Z”), “electionTime” : Timestamp(1570713059, 1), “electionDate” : ISODate(“2019-10-10T13:10:59Z”), “configVersion” : 28, “self” : true }, { “_id” : 6, “name” : “127.0.0.1:4777”, “health” : 1, “state” : 2, “stateStr” : “SECONDARY”, “uptime” : 514, “optime” : { “ts” : Timestamp(1570713376, 1), “t” : NumberLong(5) }, “optimeDurable” : { “ts” : Timestamp(1570713376, 1), “t” : NumberLong(5) }, “optimeDate” : ISODate(“2019-10-10T13:16:16Z”), “optimeDurableDate” : ISODate(“2019-10-10T13:16:16Z”), “lastHeartbeat” : ISODate(“2019-10-10T13:16:28.911Z”), “lastHeartbeatRecv” : ISODate(“2019-10-10T13:16:26.912Z”), “pingMs” : NumberLong(0), “configVersion” : 28 }, { “_id” : 7, “name” : “127.0.0.1:5777”, “health” : 1, “state” : 2, “stateStr” : “SECONDARY”, “uptime” : 11, “optime” : { “ts” : Timestamp(1570713376, 1), “t” : NumberLong(5) }, “optimeDurable” : { “ts” : Timestamp(1570713376, 1), “t” : NumberLong(5) }, “optimeDate” : ISODate(“2019-10-10T13:16:16Z”), “optimeDurableDate” : ISODate(“2019-10-10T13:16:16Z”), “lastHeartbeat” : ISODate(“2019-10-10T13:16:28.911Z”), “lastHeartbeatRecv” : ISODate(“2019-10-10T13:16:27.075Z”), “pingMs” : NumberLong(0), “configVersion” : 28 } ], “ok” : 1}在Primary插入数据,在所有端口Secondary测试数据是否正常shard1:PRIMARY> db.movie.insert({“shouyue”:”yunweibu”})WriteResult({ “nInserted” : 1 })shard1:PRIMARY> db.movie.find(){ “_id” : ObjectId(“5d9c7ee9d7a8df8fd023d6ed”), “name” : “hank” }{ “_id” : ObjectId(“5d9d9d5d159fa59c5d01985a”), “hname” : “yoon” }{ “_id” : ObjectId(“5d9d9e33159fa59c5d01985b”), “yname” : “hankyoon” }{ “_id” : ObjectId(“5d9f2aacdaabe0e11aebef86”), “kname” : “shouqi” }{ “_id” : ObjectId(“5d9f2fa0b384f3ba8df3a0ce”), “shouyue” : “yunweibu” } #查看各端口是否有此条数据2777端口:[root@127.0.0.1 bin]# /opt/mongodb_3_4/bin/mongo –port 2777MongoDB shell version v3.4.6connecting to: mongodb://127.0.0.1:2777/MongoDB server version: 3.4.6shard1:SECONDARY> show dbs2019-10-10T21:19:51.176+0800 E QUERY [thread1] Error: listDatabases failed:{ “ok” : 0, “errmsg” : “not master and slaveOk=false”, “code” : 13435, “codeName” : “NotMasterNoSlaveOk”} :_getErrorWithCode@src/mongo/shell/utils.js:25:13Mongo.prototype.getDBs@src/mongo/shell/mongo.js:62:1shellHelper.show@src/mongo/shell/utils.js:769:19shellHelper@src/mongo/shell/utils.js:659:15@(shellhelp2):1:1shard1:SECONDARY> rs.slaveOk()shard1:SECONDARY> use yoonswitched to db yoonshard1:SECONDARY> db.movie.find(){ “_id” : ObjectId(“5d9c7ee9d7a8df8fd023d6ed”), “name” : “hank” }{ “_id” : ObjectId(“5d9d9d5d159fa59c5d01985a”), “hname” : “yoon” }{ “_id” : ObjectId(“5d9d9e33159fa59c5d01985b”), “yname” : “hankyoon” }{ “_id” : ObjectId(“5d9f2aacdaabe0e11aebef86”), “kname” : “shouqi” }{ “_id” : ObjectId(“5d9f2fa0b384f3ba8df3a0ce”), “shouyue” : “yunweibu” }4777端口:[root@127.0.0.1 bin]# /opt/mongodb_3_4/bin/mongo –port 4777MongoDB shell version v3.4.6connecting to: mongodb://127.0.0.1:4777/MongoDB server version: 3.4.6Server has startup warnings:2019-10-10T21:07:05.390+0800 I CONTROL [initandlisten]2019-10-10T21:07:05.390+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.2019-10-10T21:07:05.390+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.2019-10-10T21:07:05.390+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.2019-10-10T21:07:05.390+0800 I CONTROL [initandlisten]2019-10-10T21:07:05.390+0800 I CONTROL [initandlisten]2019-10-10T21:07:05.390+0800 I CONTROL [initandlisten] ** WARNING: You are running on a NUMA machine.2019-10-10T21:07:05.390+0800 I CONTROL [initandlisten] ** We suggest launching mongod like this to avoid performance problems:2019-10-10T21:07:05.390+0800 I CONTROL [initandlisten] ** numactl –interleave=all mongod [other options]2019-10-10T21:07:05.390+0800 I CONTROL [initandlisten]shard1:SECONDARY> rs.slaveOk()shard1:SECONDARY> use yoonswitched to db yoonshard1:SECONDARY> db.movie.find(){ “_id” : ObjectId(“5d9c7ee9d7a8df8fd023d6ed”), “name” : “hank” }{ “_id” : ObjectId(“5d9d9d5d159fa59c5d01985a”), “hname” : “yoon” }{ “_id” : ObjectId(“5d9d9e33159fa59c5d01985b”), “yname” : “hankyoon” }{ “_id” : ObjectId(“5d9f2aacdaabe0e11aebef86”), “kname” : “shouqi” }{ “_id” : ObjectId(“5d9f2fa0b384f3ba8df3a0ce”), “shouyue” : “yunweibu” }5777端口:[root@127.0.0.1 bin]# /opt/mongodb_3_4/bin/mongo –port 5777MongoDB shell version v3.4.6connecting to: mongodb://127.0.0.1:5777/MongoDB server version: 3.4.6Server has startup warnings:2019-10-10T21:15:35.059+0800 I CONTROL [initandlisten]2019-10-10T21:15:35.059+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.2019-10-10T21:15:35.059+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.2019-10-10T21:15:35.059+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.2019-10-10T21:15:35.059+0800 I CONTROL [initandlisten]2019-10-10T21:15:35.060+0800 I CONTROL [initandlisten]2019-10-10T21:15:35.060+0800 I CONTROL [initandlisten] ** WARNING: You are running on a NUMA machine.2019-10-10T21:15:35.060+0800 I CONTROL [initandlisten] ** We suggest launching mongod like this to avoid performance problems:2019-10-10T21:15:35.060+0800 I CONTROL [initandlisten] ** numactl –interleave=all mongod [other options]2019-10-10T21:15:35.060+0800 I CONTROL [initandlisten]shard1:SECONDARY> rs.slaveOk()shard1:SECONDARY> use yoonswitched to db yoonshard1:SECONDARY> db.movie.find(){ “_id” : ObjectId(“5d9c7ee9d7a8df8fd023d6ed”), “name” : “hank” }{ “_id” : ObjectId(“5d9d9d5d159fa59c5d01985a”), “hname” : “yoon” }{ “_id” : ObjectId(“5d9d9e33159fa59c5d01985b”), “yname” : “hankyoon” }{ “_id” : ObjectId(“5d9f2aacdaabe0e11aebef86”), “kname” : “shouqi” }{ “_id” : ObjectId(“5d9f2fa0b384f3ba8df3a0ce”), “shouyue” : “yunweibu” }MongoDB3.2升级至3.4.6升级完成。但是真正的升级线上需要开发,测试配合来完成,保证升级的可用性。看完上述内容,你们掌握MongoDB3.2如何升级至3.4.6的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注云技术行业资讯频道,感谢各位的阅读!
相关推荐: 如何解决mysql客户端无法连接远程mysql问题
本篇内容主要讲解“如何解决mysql客户端无法连接远程mysql问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决mysql客户端无法连接远程mysql问题”吧!客户端无法连接远程mysql问题一切配置都配…