5

我正在尝试这个:

mongod --replSet mySet --dbpath /data/r1 --port 27017 --oplogSize 700

mongod --replSet mySet --dbpath /data/r2 --port 27018 --oplogSize 700

mongod --replSet mySet --dbpath /data/r3 --port 27019 --oplogSize 700

然后在新终端中:

/mongo --port 27017
MongoDB shell version: 2.0.2
connecting to: 127.0.0.1:27017/test 

> cfg = {

    _id : "mySet",
    members : [
    { _id : 0, host : "localhost:27017" },
    { _id : 1, host : "localhost:27018" },
    { _id : 2, host : "localhost:27019" } ] } 

当我跑步时

rs.initiate(cfg)

我收到此错误:

{ "errmsg" : "服务器没有运行 --replSet", "ok" : 0 }

为什么我收到此错误?

来自日志文件:

Fri Jun 01 15:05:11 [initandlisten] MongoDB starting : pid=5236 port=27017 dbpath=c:\mongodb\data 64-bit host=mami
Fri Jun 01 15:05:11 [initandlisten] db version v2.0.4, pdfile version 4.5
Fri Jun 01 15:05:11 [initandlisten] git version: 329f3c47fe8136c03392c8f0e548506cb21f8ebf
Fri Jun 01 15:05:11 [initandlisten] build info: windows sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1') BOOST_LIB_VERSION=1_42
Fri Jun 01 15:05:11 [initandlisten] options: { dbpath: "c:\mongodb\data", logappend: true, logpath: "c:\mongodb\logs\logfilename.log", service: true }
Fri Jun 01 15:05:11 [initandlisten] journal dir=c:/mongodb/data/journal
Fri Jun 01 15:05:11 [initandlisten] recover : no journal files present, no recovery needed
Fri Jun 01 15:05:12 [initandlisten] waiting for connections on port 27017
Fri Jun 01 15:05:12 [websvr] admin web console waiting for connections on port 28017
Fri Jun 01 15:05:12 [initandlisten] connection accepted from 127.0.0.1:49663 #1
Fri Jun 01 15:05:56 [conn1] end connection 127.0.0.1:49663
Fri Jun 01 15:06:02 [initandlisten] connection accepted from 127.0.0.1:49669 #2
Fri Jun 01 15:06:11 [clientcursormon] mem (MB) res:22 virt:67 mapped:0
Fri Jun 01 15:06:19 [conn2] terminating, shutdown command received
Fri Jun 01 15:06:19 dbexit: shutdown called
Fri Jun 01 15:06:19 [conn2] shutdown: going to close listening sockets...
Fri Jun 01 15:06:19 [conn2] closing listening socket: 488
Fri Jun 01 15:06:19 [conn2] closing listening socket: 492
Fri Jun 01 15:06:19 [conn2] shutdown: going to flush diaglog...
Fri Jun 01 15:06:19 [conn2] shutdown: going to close sockets...
Fri Jun 01 15:06:19 [conn2] shutdown: waiting for fs preallocator...
Fri Jun 01 15:06:19 [conn2] shutdown: lock for final commit...
Fri Jun 01 15:06:19 [conn2] shutdown: final commit...
Fri Jun 01 15:06:19 [conn2] shutdown: closing all files...
Fri Jun 01 15:06:19 [conn2] closeAllFiles() finished
Fri Jun 01 15:06:19 [conn2] journalCleanup...
Fri Jun 01 15:06:19 [conn2] removeJournalFiles
Fri Jun 01 15:06:19 [conn2] shutdown: removing fs lock...
Fri Jun 01 15:06:19 dbexit: really exiting now


***** SERVER RESTARTED *****


Fri Jun 01 15:06:19 [initandlisten] MongoDB starting : pid=6980 port=27017 dbpath=c:\mongodb\data 64-bit host=mami
Fri Jun 01 15:06:19 [initandlisten] db version v2.0.4, pdfile version 4.5
Fri Jun 01 15:06:19 [initandlisten] git version: 329f3c47fe8136c03392c8f0e548506cb21f8ebf
Fri Jun 01 15:06:19 [initandlisten] build info: windows sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1') BOOST_LIB_VERSION=1_42
Fri Jun 01 15:06:19 [initandlisten] options: { dbpath: "c:\mongodb\data", logappend: true, logpath: "c:\mongodb\logs\logfilename.log", service: true }
Fri Jun 01 15:06:19 [initandlisten] journal dir=c:/mongodb/data/journal
Fri Jun 01 15:06:19 [initandlisten] recover : no journal files present, no recovery needed
Fri Jun 01 15:06:19 [initandlisten] waiting for connections on port 27017
Fri Jun 01 15:06:20 [websvr] admin web console waiting for connections on port 28017
Fri Jun 01 15:06:20 [initandlisten] connection accepted from 127.0.0.1:49678 #1
Fri Jun 01 15:06:22 [conn1] end connection 127.0.0.1:49678
Fri Jun 01 15:06:30 [initandlisten] connection accepted from 127.0.0.1:49679 #2
Fri Jun 01 15:06:36 [conn2] terminating, shutdown command received
Fri Jun 01 15:06:36 dbexit: shutdown called
Fri Jun 01 15:06:36 [conn2] shutdown: going to close listening sockets...
Fri Jun 01 15:06:36 [conn2] closing listening socket: 488
Fri Jun 01 15:06:36 [conn2] closing listening socket: 492
Fri Jun 01 15:06:36 [conn2] shutdown: going to flush diaglog...
Fri Jun 01 15:06:36 [conn2] shutdown: going to close sockets...
Fri Jun 01 15:06:36 [conn2] shutdown: waiting for fs preallocator...
Fri Jun 01 15:06:36 [conn2] shutdown: lock for final commit...
Fri Jun 01 15:06:36 [conn2] shutdown: final commit...
Fri Jun 01 15:06:36 [conn2] shutdown: closing all files...
Fri Jun 01 15:06:36 [conn2] closeAllFiles() finished
Fri Jun 01 15:06:36 [conn2] journalCleanup...
Fri Jun 01 15:06:37 [conn2] removeJournalFiles
Fri Jun 01 15:06:37 [conn2] shutdown: removing fs lock...
Fri Jun 01 15:06:37 dbexit: really exiting now


***** SERVER RESTARTED *****


Fri Jun 01 15:06:37 [initandlisten] MongoDB starting : pid=7076 port=27017 dbpath=c:\mongodb\data 64-bit host=mami
Fri Jun 01 15:06:37 [initandlisten] db version v2.0.4, pdfile version 4.5
Fri Jun 01 15:06:37 [initandlisten] git version: 329f3c47fe8136c03392c8f0e548506cb21f8ebf
Fri Jun 01 15:06:37 [initandlisten] build info: windows sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1') BOOST_LIB_VERSION=1_42
Fri Jun 01 15:06:37 [initandlisten] options: { dbpath: "c:\mongodb\data", logappend: true, logpath: "c:\mongodb\logs\logfilename.log", service: true }
Fri Jun 01 15:06:37 [initandlisten] journal dir=c:/mongodb/data/journal
Fri Jun 01 15:06:37 [initandlisten] recover : no journal files present, no recovery needed
Fri Jun 01 15:06:37 [initandlisten] waiting for connections on port 27017
Fri Jun 01 15:06:37 [websvr] admin web console waiting for connections on port 28017
Fri Jun 01 15:06:37 [initandlisten] connection accepted from 127.0.0.1:49680 #1
Fri Jun 01 15:06:39 [conn1] end connection 127.0.0.1:49680
Fri Jun 01 15:07:37 [clientcursormon] mem (MB) res:22 virt:66 mapped:0
Fri Jun 01 15:53:55 [clientcursormon] mem (MB) res:0 virt:64 mapped:0
Fri Jun 01 15:58:55 [clientcursormon] mem (MB) res:1 virt:64 mapped:0
Fri Jun 01 15:59:24 [initandlisten] connection accepted from 127.0.0.1:50087 #2
Fri Jun 01 15:59:55 [clientcursormon] mem (MB) res:2 virt:65 mapped:0
Fri Jun 01 16:04:55 [clientcursormon] mem (MB) res:2 virt:65 mapped:0
Fri Jun 01 16:06:07 [conn2] replSet replSetInitiate admin command received from client

我已经尝试过本教程replSet但仍然没有

4

7 回答 7

17

--replSet我能想到的一个原因是,在您尝试启动它之前,您已经在端口 27017 上运行了一个没有参数的 mongod 。ps aux |grep mongod在你尝试这个之前,确保没有 mongod 正在运行 ( )。我还会检查日志文件,因为它很可能提供了一个线索,为什么它没有以副本集模式启动。

于 2012-05-30T10:13:44.030 回答
2

我发现一个简单的解决方案是为 --replSet 指定一个子参数。

我将我的 Mongo 服务器配置为只有一个节点的 ReplicaSet,因为它充当 PRYMARY,不会有另一个节点来读取目的。

这是运行 mongod 服务时帮助我的原因。

/> sudo mongod --replSet myReplSet

一旦我使用 mongo 登录,提示就会改变,然后我可以正确配置 rs:

/myReplSet:PRIMARY> cfg = { _id : "mySet", 成员: [ { _id : 0, 主机: "localhost:27017" } ] }

/myReplSet:PRIMARY> rs.initiate(cfg)

这就是诀窍!

我希望这可以帮助别人。

于 2013-10-16T18:44:50.933 回答
1

我注意到它的 linux 权限问题,如上面建议的帖子。要修复它,您需要为数据目录命令设置权限,因为它是sudo chown -R $USER /data. 我对 npm 有同样的问题。

于 2014-05-06T10:22:41.130 回答
0

有同样的问题,所以在我的情况下,系统中还有一个 mongod 进程正在运行(当然,它--replSet在默认端口上没有标志运行,这就是我出现此错误的原因)。

运行命令:

$ ps aux | grep mongod

就我而言,它输出:

root 63434 0.3 0.1 2621328 12228 ?? S 5:53PM 0:03.44 mongod --replSet m101 --logpath 1.log --dbpath /data/rs1 --port 27017 --smallfiles --oplogSize 64 --fork

root 63442 0.2 0.1 2622352 12220 ?? S 5:54PM 0:03.37 mongod --replSet m101 --logpath 2.log --dbpath /data/rs2 --port 27018 --smallfiles --oplogSize 64 --fork

root 63448 0.2 0.1 2621312 12208 ?? S 5:54PM 0:03.35 mongod --replSet m101 --logpath 3.log --dbpath /data/rs3 --port 27019 --smallfiles --oplogSize 64 --fork

pavlo 683 0.0 0.0 3082276 6628 ?? S 31Aug14 11:27.70 /usr/local/opt/mongodb/bin/mongod --config /usr/local/etc/mongod.conf

pavlo 63522 0.0 0.0 2432784 624 s002 S+ 6:06PM 0:00.00 grep mongod

所以带有 id 的进程683正在进行中,所以在我杀死它之后一切正常:

$ kill 683
于 2014-09-17T16:17:19.890 回答
0

我设法解决了这个问题。

  1. 我首先删除了mongodb:sudo apt-get remove mongodb

  2. 我遵循了 MongoDB 教程:

  3. 但是,在步骤之后...: sudo apt-get update

  4. ...我决定重新安装 mongodb:sudo apt-get remove mongodb(在这一步我可能指定了 'mongodb-server')。

而且,神奇的是,replSet 名称能够从 mongodb.conf 加载。我被留给 rs.initiate() - 就是这样。

注意:我从 2.4.9 开始并以相同的 2.4.9 结束 - 只是工作。

于 2014-07-24T11:58:24.613 回答
0

我在做我的 mongodb 复制和分片作业时遇到了完全相同的问题。在运行以下命令之后:

./mongod --replSet m101 --logpath "1.log" --dbpath /data/rs1 --port 27017 --smallfiles --oplogSize 64 --fork

然后进行ps aux | grep mongo检查,我意识到实际上没有运行任何东西。我所做的只是将这些命令作为系统根运行,所以最后我运行 mongod 进程,如:

sudo ./mongod --replSet m101 --logpath "1.log" --dbpath /data/rs1 --port 27017 --smallfiles --oplogSize 64 --fork

就是这样!:)

希望能帮助到你。

于 2014-01-02T16:20:09.877 回答
0

是的,在我的 ubuntu 15.04 上也是如此。并通过解决端口解决了它。此外,检查日志,以便执行状态让我们知道它是如何工作的。

于 2015-07-06T10:21:20.310 回答