MongoDB - 用代码48关闭

时间:2017-02-06 16:29:26

标签: mongodb

我正在尝试启动MongoDB,但终端返回以下错误:

2017-02-06T16:26:27.037+0000 I CONTROL  [initandlisten] MongoDB starting : pid=25184 port=27017 dbpath=/data/db 64-bit host=Janiss-MacBook-Pro.local
2017-02-06T16:26:27.037+0000 I CONTROL  [initandlisten] db version v3.4.1
2017-02-06T16:26:27.037+0000 I CONTROL  [initandlisten] git version: 5e103c4f5583e2566a45d740225dc250baacfbd7
2017-02-06T16:26:27.037+0000 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2k  26 Jan 2017
2017-02-06T16:26:27.037+0000 I CONTROL  [initandlisten] allocator: system
2017-02-06T16:26:27.037+0000 I CONTROL  [initandlisten] modules: none
2017-02-06T16:26:27.037+0000 I CONTROL  [initandlisten] build environment:
2017-02-06T16:26:27.037+0000 I CONTROL  [initandlisten]     distarch: x86_64
2017-02-06T16:26:27.037+0000 I CONTROL  [initandlisten]     target_arch: x86_64
2017-02-06T16:26:27.037+0000 I CONTROL  [initandlisten] options: {}
2017-02-06T16:26:27.038+0000 E NETWORK  [initandlisten] listen(): bind() failed Address already in use for socket: 0.0.0.0:27017
2017-02-06T16:26:27.038+0000 E NETWORK  [initandlisten]   addr already in use
2017-02-06T16:26:27.038+0000 E NETWORK  [initandlisten] Failed to set up sockets during startup.
2017-02-06T16:26:27.038+0000 E STORAGE  [initandlisten] Failed to set up listener: InternalError: Failed to set up sockets
2017-02-06T16:26:27.038+0000 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2017-02-06T16:26:27.038+0000 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
2017-02-06T16:26:27.039+0000 I CONTROL  [initandlisten] now exiting
2017-02-06T16:26:27.039+0000 I CONTROL  [initandlisten] shutting down with code:48

如果重要的话,我正在使用Laravel代客。

9 个答案:

答案 0 :(得分:10)

您似乎已经在要启动mongodb的端口上运行了一个进程:

listen(): bind() failed Address already in use for socket: 0.0.0.0:27017
2017-02-06T16:26:27.038+0000 E NETWORK  [initandlisten]   addr already in use

您可以尝试使用此命令终止在该端口上运行的进程: sudo kill sudo lsof -t -i:27017

如果你有另一个使用该端口的程序,请

或为mongodb定义另一个端口 在默认端口(27017)以外的端口上运行mongodb从终端启动mongodb时使用--port 27018参数

答案 1 :(得分:3)

对我而言,杀戮过程不起作用。可能是因为我的mongo实例在AWS上运行。所以,我做的是登录mongo shell。 (当mongo实例正在运行时,这是可能的)并切换到管理DB通过'使用admin'并且做了db.shutdownServer()'。这干净地关闭了服务器

use admin

db.shutdownServer()

答案 2 :(得分:3)

如果您使用的是Mac,则可以简单地终止在端口27017上运行的进程,该进程在大多数情况下是mongodb进程。

只需运行命令。

npx kill-port 27017

之后,您可以像往常一样运行mongod命令。

  

或者,如果您使用的是Windows,请按照以下步骤操作

  • 以管理员身份运行命令行
  • netstat -ano | findstr :27017
  • 最后您将获得pid,这是要杀死的进程ID
  • taskkill /PID <typeyourPIDhere> /F
  • 成功终止进程后,您可以照常运行mongod

享受!

答案 3 :(得分:2)

这对我有用

最初,我遇到各种问题,例如当我尝试使用以下方法启动服务器时:     苏多蒙哥 I received this error: shutting down with code 48

然后我更改了mongodb的端口

sudo mongod --port 27018

现在mongod服务器正在暂时运行

sudo mongod

答案 4 :(得分:1)

1。如果mongod显示错误(使用代码48关闭),则
表示该端口已在使用中,因此您可以做两件事

1.a您可以通过指定端口来更改mongod的端口
mongod --dbpath /System/Volumes/Data/data/db (path of db) —port 27018

1.b或者您可以通过找到该端口来终止该进程
的过程 sudo lsof -i :27017
然后通过命令杀死
kill -9 <PID>

2。使用brew services run mongodb-community

启动mongo db

3。键入mongodmongod --dbpath /System/Volumes/Data/data/db(path)

答案 5 :(得分:1)

基本上,您只需要强制退出mongo,只需输入以下内容即可

sudo pkill -f mongod

现在您可以使用

重新启动服务器

mongod

答案 6 :(得分:0)

我是如何解决我的问题的?

我不知道此错误及其解决方案的实际原因,但我删除了mongodb数据库文件夹C:\data\db并重新启动了我的电脑。

答案 7 :(得分:0)

重新启动后,我遇到了同样的问题(MongoDB无法以退出代码48开头),因为它无法绑定到给定的IP。

事实证明,将mongod systemctl单元文件配置为在network.target之后启动mongod服务。我将其更改为network-online.target,它似乎可以正常工作。

答案 8 :(得分:0)

<块引用>

2017-02-06T16:26:27.038+0000 E NETWORK [initandlisten] listen(): bind() failed Address already in use for socket: 0.0.0.0:27017.

表示服务器27017已经在使用中。

  1. 你可以试试mongod --dbpath /System/Volumes/Data/data/db --port 27018

  1. 您可以先通过 sudo pkill -f mongod 停止 mongod。 然后通过mongod --dbpath /System/Volumes/Data/data/db
  2. 重启服务器