2016-08-04 80 views
1

我嘗試啓動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 

回答

1

顯示錯誤很顯然這裏:

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 

請注意,如果您啓動第二個實例,你還需要提供第二個數據目錄 - 不應該有兩個正在運行的實例使用相同的數據庫文件。

4

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

用另一個端口mongod --port 27018嘗試。

要終止在Ubuntu上使用端口27017的進程,您可以使用lsof -i :27017找到該進程的PID,然後kill -9 <PID>