mongod 命令执行发现已经有进程在运行mongod数据库--errno:48 Address already in use for socket: 0.0.0.0:27017

时间:2022-09-07 18:24:50

错误信息:

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 命令执行发现已经有进程在运行mongod数据库--errno:48 Address already in use for socket: 0.0.0.0:27017

再次执行 mongod 命令就可以开启 mongodb 服务

window 下解决方法:

http://*.com/questions/34709062/failed-to-set-up-sockets-during-startup-dbexit-rc-48-error-in-mongodb/35650275

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.