为什么我不能启动mongodb服务器?

问题描述:

我尝试启动mongodb服务器,但它立即存在。是否因为它试图使用已经在使用的端口?我该如何正确运行它?谢谢。为什么我不能启动mongodb服务器?

我在Ubuntu 14.04上,并按照mongodb网站的指导安装了mongodb。

$ mongod 
2016-08-04T11:06:39.947-0400 I CONTROL [initandlisten] MongoDB starting : pid=15947 port=27017 dbpath=/data/db 64-bit host=ocean 
2016-08-04T11:06:39.947-0400 I CONTROL [initandlisten] db version v3.2.8 
2016-08-04T11:06:39.951-0400 I CONTROL [initandlisten] git version: ed70e33130c977bda0024c125b56d159573dbaf0 
2016-08-04T11:06:39.952-0400 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1f 6 Jan 2014 
2016-08-04T11:06:39.952-0400 I CONTROL [initandlisten] allocator: tcmalloc 
2016-08-04T11:06:39.952-0400 I CONTROL [initandlisten] modules: none 
2016-08-04T11:06:39.952-0400 I CONTROL [initandlisten] build environment: 
2016-08-04T11:06:39.952-0400 I CONTROL [initandlisten]  distmod: ubuntu1404 
2016-08-04T11:06:39.952-0400 I CONTROL [initandlisten]  distarch: x86_64 
2016-08-04T11:06:39.953-0400 I CONTROL [initandlisten]  target_arch: x86_64 
2016-08-04T11:06:39.953-0400 I CONTROL [initandlisten] options: {} 
2016-08-04T11:06:40.015-0400 E NETWORK [initandlisten] listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017 
2016-08-04T11:06:40.016-0400 E NETWORK [initandlisten] addr already in use 
2016-08-04T11:06:40.016-0400 E STORAGE [initandlisten] Failed to set up sockets during startup. 
2016-08-04T11:06:40.016-0400 I CONTROL [initandlisten] dbexit: rc: 48 

显示错误很显然这里:

listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017 

这是说,插座已经被别的东西联系在一起 - 那就是,对端口27017已经运行其他服务;最有可能的,已经在你的蒙戈服务器的实例(只有一个进程可以同时绑定到一个端口)

使用此

ps aux | grep mongod 

要查找已运行任何mongod的过程。使用kill <pid>结束该过程。

如果你想开始蒙戈的第二个实例,那么你需要把它绑定到一个新的端口,你可以做到这一点使用

mongod --port 27015 

请注意,如果您启动第二个实例,你还需要提供第二个数据目录 - 不应该有两个正在运行的实例使用相同的数据库文件。

它告诉你Address already in use for socket: 0.0.0.0:27017

用另一个端口mongod --port 27018尝试。

要终止在Ubuntu上使用端口27017的进程,您可以使用lsof -i :27017找到该进程的PID,然后kill -9 <PID>