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

时间:2016-08-04 15:09:42

标签: 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

2 个答案:

答案 0 :(得分:4)

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

尝试使用mongod --port 27018的其他端口。

要杀死在ubuntu上使用端口27017的进程,您可以使用lsof -i :27017查找该进程的PID,然后kill -9 <PID>

答案 1 :(得分:1)

错误在这里非常清楚地显示出来:

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

这就是说套接字已经被其他东西绑定了 - 也就是说,端口27017上已经运行了另一个服务;很可能是你的mongo服务器的一个实例(一次只能有一个进程绑定到一个端口)

使用此

ps aux | grep mongod

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

如果你想启动mongo的第二个实例,那么你需要将它绑定到一个新端口,你可以使用

mongod --port 27015

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