mongod 命令执行发现已经有进程在运行mongod数据库--errno:48 Address already in use for socket: 0.0.0.0:27017
错误信息:
listen(): bind() failed errno:48 Address already in use for socket: 0.0.0.0:27017
27017端口已经被占用
完整error信息
2016-10-24T23:46:56.314+0800 E NETWORK [initandlisten] listen(): bind() failed errno:48 Address already in use for socket: 0.0.0.0:27017
2016-10-24T23:46:56.314+0800 E NETWORK [initandlisten] addr already in use
2016-10-24T23:46:56.314+0800 E STORAGE [initandlisten] Failed to set up sockets during startup.
2016-10-24T23:46:56.314+0800 I CONTROL [initandlisten] dbexit: rc: 48
处理方法:终端中输入:
ps aux | grep mongod
找到对应进程id,杀死:
kill -9 pid
如下图,
再次执行 mongod 命令就可以开启 mongodb 服务
window 下解决方法:
Find the process running on port 27017:
C:\Users\hughes> netstat -aon | findstr 27017
TCP 0.0.0.0:27017 0.0.0.0:0 LISTENING 3344
The last column shows the PID (3344). Find the process name for that 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
For me it turned out that VirtualBox's port forwarding was the issue.