无法启动mongoDB作为服务

时间:2016-04-08 12:46:24

标签: mongodb replicaset

我想将mongoDB作为服务运行。该实例应配置为单节点复制集,以便能够使用the connector将elasticSearch实例连接到该实例。

所以我扩展了mongod.conf:

...
replication:
  replSetName: "singleNodeRepl"
...

我尝试了不同的方法来启动mongod,但没有任何作用。

当我尝试按$ service mongod start启动服务时,会抛出以下错误:

start: Rejected send message, 1 matched rules; type="method_call", sender=":1.106" (uid=1225 pid=26018 comm="start mongod ") interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")

当我以sudo执行此命令时(不是最佳实践,对吗?),显示其“正在运行”并显示以下消息:

mongod start/running, process 26034

但是过程26034不存在而且ps aux | grep mongo也没有显示任何内容?!

接下来尝试:将其作为普通应用程序运行

mongod --dbpath /var/lib/mongodb/ --replSet SingleNodeRepl

以下是例外情况:

2016-04-08T14:31:35.192+0200 I STORAGE  [initandlisten] exception in initAndListen: 98 Unable to create/open lock file: /var/lib/mongodb/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
2016-04-08T14:31:35.192+0200 I CONTROL  [initandlisten] dbexit:  rc: 100

当我运行~$ sudo mongod --dbpath /var/lib/mongodb/ --replSet SingleNodeRepl时,一切都很好,但那不是我的目标:它不是作为服务运行而是以root身份运行。

mongod-logfile经常保持不变。但最后几行很好奇:

2016-04-08T14:24:56.242+0200 E NETWORK  [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted
2016-04-08T14:24:56.242+0200 I -        [initandlisten] Fatal Assertion 28578
2016-04-08T14:24:56.242+0200 I -        [initandlisten]
***aborting after fassert() failure

存在mongodb-27017.sock,但删除(在任何地方建议的内容)没有帮助。

基于tried几个solutions上面的错误,但没有任何帮助。

我认为这是一个非常简单的错误......但是哪一个?

[编辑:] 我发现,我或许应该指定config-location。所以(工作但很糟糕)命令看起来像:

$ sudo mongod --dbpath /var/lib/mongodb/ --replSet SingleNodeRepl --config /etc/mongod.conf

这会带来以下错误:

warning: bind_ip of 0.0.0.0 is unnecessary; listens on all ips by default

这是一个古老的东西,这是this problem的解决方案,突然不再起作用了!?

2 个答案:

答案 0 :(得分:0)

我遇到了停止和启动mongod作为服务的问题。事实证明,升级脚本存在问题。 我发现这discussion似乎解决了这个问题。

建议的解决方案非常多:(现在复制粘贴)

vim /etc/init.d/mongod

查找stop()函数(和start()函数以获得良好的度量)并删除以下行中$ PIDFILE周围的引号。

killproc -p $PIDFILE -d 300 /usr/bin/mongod

答案 1 :(得分:0)

这样做:

sudo rm /var/lib/mongodb/mongod.lock
mongod --repair
sudo service mongodb start

如果这不起作用,请告诉我!