为什么我不能启动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>
。