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

Posted wjwdive

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 下解决方法:

http://stackoverflow.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.

 

以上是关于mongod 命令执行发现已经有进程在运行mongod数据库--errno:48 Address already in use for socket: 0.0.0.0:27017的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB 通过配置文件启动及注册服务

mongo和mongod的区别

MongoDB内存配置 --wiredTigerCacheSizeGB

MongoDB 安装配置

linux 重启进程

MongoDB