我将mongo更新到版本3.2现在我收到此错误。早些时候我没有收到错误。只有在更新mongo后我才会收到此错误。我甚至试图再次停止并启动mongod服务,但它仍然显示相同的错误。
rahul ~ $ mongod
2016-01-10T23:39:51.696+0530 I CONTROL [initandlisten] MongoDB starting : pid=6630 port=27017 dbpath=/data/db 64-bit host=rahulcomp24-HP-ENVY-15-Notebook-PC
2016-01-10T23:39:51.696+0530 I CONTROL [initandlisten] db version v3.2.0
2016-01-10T23:39:51.696+0530 I CONTROL [initandlisten] git version: 45d947729a0315accb6d4f15a6b06be6d9c19fe7
2016-01-10T23:39:51.696+0530 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1f 6 Jan 2014
2016-01-10T23:39:51.696+0530 I CONTROL [initandlisten] allocator: tcmalloc
2016-01-10T23:39:51.696+0530 I CONTROL [initandlisten] modules: none
2016-01-10T23:39:51.696+0530 I CONTROL [initandlisten] build environment:
2016-01-10T23:39:51.696+0530 I CONTROL [initandlisten] distmod: ubuntu1404
2016-01-10T23:39:51.696+0530 I CONTROL [initandlisten] distarch: x86_64
2016-01-10T23:39:51.696+0530 I CONTROL [initandlisten] target_arch: x86_64
2016-01-10T23:39:51.696+0530 I CONTROL [initandlisten] options: {}
2016-01-10T23:39:51.717+0530 E NETWORK [initandlisten] listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017
2016-01-10T23:39:51.717+0530 E NETWORK [initandlisten] addr already in use
2016-01-10T23:39:51.717+0530 E STORAGE [initandlisten] Failed to set up sockets during startup.
2016-01-10T23:39:51.717+0530 I CONTROL [initandlisten] dbexit: rc: 48
`
rahul ~ $ mongo
MongoDB shell version: 3.2.0
connecting to: test
Server has startup warnings:
2016-01-10T23:38:16.095+0530 I CONTROL [initandlisten]
2016-01-10T23:38:16.095+0530 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-01-10T23:38:16.095+0530 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-01-10T23:38:16.095+0530 I CONTROL [initandlisten]
2016-01-10T23:38:16.095+0530 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-01-10T23:38:16.095+0530 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-01-10T23:38:16.095+0530 I CONTROL [initandlisten]
答案 0 :(得分:5)
查找在端口27017上运行的进程:
C:\Users\hughes> netstat -aon | findstr 27017
TCP 0.0.0.0:27017 0.0.0.0:0 LISTENING 3344
最后一列显示PID(3344)。找到该PID的进程名称:
C:\Users\hughes> tasklist /fi "pid eq 3344"
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
VirtualBox.exe 3344 Console 1 101,908 K
对我来说,事实证明VirtualBox的端口转发是个问题。
答案 1 :(得分:2)
所以mongod输出告诉
listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017"
这意味着某个进程已经在使用相同的socet。例如,如果我尝试在已经运行的情况下运行mongod,我会得到这个输出。你确定这不是你的情况吗?我猜是这样,因为mongo shell似乎连接成功...
答案 2 :(得分:2)
检查db是否正在运行,运行:
kill -9 77071
找到db(例如,这里是77071)并将其终止,运行:
server/__init__.py