【问题标题】:MongoDB - shutting down with code 48MongoDB - 使用代码 48 关闭
【发布时间】:2017-06-23 16:22:08
【问题描述】:

我正在尝试启动 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 Valet。

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    在某些情况下,我们可能不知道我们启动 mongodb 的进程 ID,并且我们无法跟踪它,因为在这种情况下我们可能忘记关闭它:

    第 1 步:首先尝试知道正在建立它的进程 ID,然后 要知道,请在终端中输入以下代码:

    lsof -i | grep 27017
    

    输入上述代码后,您将能够看到使用您的 mongodb 服务器的进程 ID:

    enter image description here

    如上图所示,您可以发现“9663”是您的mongodb服务器处于活动状态的进程ID。

    第 2 步:现在我们需要通过输入以下命令来终止此进程:

    kill <pid>
    

    在上面的代码中,pid代表进程id,如上图所示,进程id类似于“9336”。

    第 3 步:现在我们已经成功终止进程,然后我们可以开始了 mongodb的服务器使用命令:

    mongod
    
                           
    

    现在你可以开始了!

    【讨论】:

      【解决方案2】:

      2017-02-06T16:26:27.038+0000 E NETWORK [initandlisten]listen():bind() 失败地址已用于套接字: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重启服务器

      【讨论】:

        【解决方案3】:

        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 &lt;PID&gt;

        2.使用brew services run mongodb-community启动mongo db

        3.输入mongodmongod --dbpath /System/Volumes/Data/data/db(path)

        【讨论】:

        • kill -9 不推荐
        【解决方案4】:

        基本上你只需要强制退出mongo,你可以通过输入来做到这一点

        sudo pkill -f mongod
        

        现在您可以再次启动服务器

        mongod
        

        【讨论】:

        • 只是一个建议,了解用户遇到问题的原因也很有帮助,尽管您的答案可能是正确的。
        【解决方案5】:

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

        原来,mongod systemctl 单元文件被配置为在network.target 之后启动mongod 服务。我把它改成了network-online.target,它似乎工作了。

        【讨论】:

          【解决方案6】:

          如果您使用的是 mac,那么您可以简单地杀死在端口 27017 上运行的进程,在大多数情况下这是 mongodb 进程。

          只需运行命令。

          npx kill-port 27017

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

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

          • 以管理员身份运行命令行
          • netstat -ano | findstr :27017
          • 最后你会得到 pid 是要杀死的进程 id
          • taskkill /PID &lt;typeyourPIDhere&gt; /F
          • 成功终止进程后,您可以像往常一样运行mongod

          享受吧!

          【讨论】:

            【解决方案7】:

            这对我有用

            最初我遇到了各种问题,比如当我尝试使用以下方法启动服务器时: 须藤蒙戈

            然后我更改了 mongodb 的端口

            sudo mongod --port 27018
            

            现在mongod服务器正在试运行

            sudo mongod
            

            【讨论】:

              【解决方案8】:

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

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

              【讨论】:

                【解决方案9】:

                对我来说,kill 过程不起作用。可能是因为我的 mongo 实例在 AWS 上运行。所以,我所做的就是登录一个 mongo shell。 (这是可能的,因为 mongo 实例正在运行)并通过“使用管理员”切换到管理数据库并执行“db.shutdownServer()”。然后干净地关闭服务器

                use admin
                
                db.shutdownServer()
                

                【讨论】:

                  【解决方案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 lsof -t -i:27017

                  如果您有另一个程序使用该端口,则为 mongodb 定义另一个端口。
                  要在默认端口 (27017) 以外的端口上运行 mongodb,请在从终端启动 mongodb 时使用 --port 27018 参数

                  【讨论】:

                  • 杀死进程有效,谢谢!但现在它返回一个不同的错误:Assertion: 28595:2: No such file or directory src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 267 2017-02-06T16:36:37.075+0000 I STORAGE [initandlisten] exception in initAndListen: 28595 2: No such file or directory, terminating
                  • 也许你的 mongodb 安装由于某种原因被破坏了。您可以尝试在此处下载 mongodb 作为独立版本:mongodb.com/download-center 提取此存档并运行位于此存档的 bin 文件夹中的 mongod 文件。如果 mongodb 从那里启动没有问题,您可能需要在系统上重新安装 mongodb 或使用您刚刚下载的此版本的 mongodb
                  • 运行提取的 mongodb 归档文件,使用以下命令:bin/mongod --dbpath /path to your db folder/ --port 5900'
                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2017-05-16
                  • 1970-01-01
                  • 2019-09-14
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多