Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB:错误:子进程失败,已退出,错误号为14_Mongodb - Fatal编程技术网

MongoDB:错误:子进程失败,已退出,错误号为14

MongoDB:错误:子进程失败,已退出,错误号为14,mongodb,Mongodb,我在Mac上运行MongoDB: Shave:mongodb_simple Logan$ ./bin/mongod -f conf/mongod.conf about to fork child process, waiting until server is ready for connections. forked process: 5110 ERROR: child process failed, exited with error number 14 这是因为我以错误的方式关闭了它吗?

我在Mac上运行MongoDB:

Shave:mongodb_simple Logan$ ./bin/mongod -f conf/mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 5110
ERROR: child process failed, exited with error number 14

这是因为我以错误的方式关闭了它吗?

这是因为您没有在传递给
-f
选项的配置文件中正确配置
mongod
实例。
重新访问配置文件,确保所有配置都正确。

您以错误的方式启动并关闭了mongo

1。要启动MONGODB

要在后台启动mongo,请键入:
mongod--dbpath/data/db--fork--logpath/dev/null

  • /data/db
    是数据库的位置。如果您还没有创建一个=>键入:
    mkdir/data/db
  • --fork
    表示您希望在后台启动mongo-deamon
  • --logpath/dev/null
    表示您不想登录-您可以通过将
    /dev/null
    替换为类似
    /var/log/mongo.log的路径来更改它
2。要关闭MONGODB

通过键入:
mongo
,然后使用admin
db.shutdownServer()连接到您的mongo。喜欢解释吗

如果由于某种原因此技术不起作用,您可以随时终止此过程

  • 通过键入:
    lsof-i:27017
    查找mongodb进程
    PID
    ,假设您的mongodb在端口27017上运行
  • 键入
    kill
    ,将
    替换为在上一个命令中找到的值
    我也有同样的问题,但我的问题是系统时钟关闭,所以我的SSL证书在技术上是无效的。更改为当前工作日期和时间
    date--set”“

    仅通过查看mongodb日志发现此问题

    对于我来说,这是
    ulimit
    问题,mongo无法打开太多文件

    已使用
    ulimit-n 10000

    然而,作为一个通用指针查看mongo日志文件时,它们会告诉我们在哪里可以进一步查看。通常,日志文件位于
    /var/log/mongo.log
    中,但请查看您的mongo配置文件。

    这对我来说很有用:

    运行终端

    sudo rm -rf mongod.lock
    export LC_ALL=C
    
    然后


    通过将
    /var/lib/mongodb/
    下的所有文件的所有者更改为
    mongodb
    ,它开始为我工作:

    chown mongodb:mongodb -R /var/lib/mongodb/
    

    我在GCP托管计算引擎实例中遇到了此问题。
    由于这是谷歌搜索该问题的最佳答案,因此我将包括对我有用的内容,并且是MongoDB()中记录的bug

    在linux系统上,如果运行mongod的用户没有设置语言环境或语言环境配置错误,mongod将无法开始打印堆栈跟踪

    通过结合以下几个步骤可以解决此问题:

  • 安装所需的语言包():
  • 运行更新区域设置():
  • 重新启动会话,然后再次检查相同的mongo命令

  • 如果上面的操作不起作用(我没有),只需手动将以下内容添加到文件
    /etc/default/locale
    ():

  • 要欣赏没有关于LC_ALL未设置的持续警告,请运行以下命令:

  • 就这些,您的MongoDB实例现在应该可以运行了

    检查文件的所有权
    /tmp/mongodb-27017.sock


    它应该是
    mongod
    。我收到了相同的错误,因为它是
    root:root

    检查mongod是否使用
    pgrep mongod
    ps-aef | grep mongod
    systemctl status mongod

    停止并重新启动以检查问题是否消失 如果您使用
    mongod-f/etc/mongod.conf
    启动mongod,则使用
    pkill-9 mongod
    杀死它,然后使用
    mongod-f/etc/mongod.conf
    如果您将其作为服务运行,请使用
    systemctl restart mongod
    重新启动它

    如果重启不起作用,请通过
    /var/log/message
    /var/log/mongodb/mongod.log
    文件找出问题所在。 使用
    tail-f/var/log/message
    tail-f/var/log/mongodb/mongod.log
    检查操作时的输出

    for example:
        1.
            Failed to unlink socket file /tmp/mongodb-27017.sock Operation not permitted
                delete the sock file with `rm`
        
        
        2.
            WiredTiger error (13) [1596090168:830936][25997:0x7fe22f208b80], wiredtiger_open: __posix_open_file, 672: /data/mongo/WiredTiger.turtle: handle-open: open: Permission denied Raw: [1596090168:830936][25997:0x7fe22f208b80], wiredtiger_open: __posix_open_file, 672: /data/mongo/WiredTiger.turtle: handle-open: open: Permission denied
            Failed to start up WiredTiger under any compatibility version
            Reason: 13: Permission denied
            
                check the file permission or owner with `ls` then change to the wright permission with `chmod` or right owner with `chown`
    

    在我的mongodb设置中,为了将特定版本的mongodb内联到现有服务器,并避免将二进制文件放在根磁盘下,我更改了不同目录中所有mongo二进制文件的路径。我不得不使用
    rpm
    选项,而不是
    yum
    选项(因为尽管提到了特定版本,但yum只安装最新版本)

    注意:放置二进制文件的默认路径是
    /var/lib/mongo

    这种方法既不允许
    mongod
    用户具有所需的权限,也不允许未正确设置其权限,因此,我将
    mongod.service
    文件中的
    user
    group
    更改为
    root
    用户,并使用以下方法成功启动该过程:

    service start mongod
    
    使用-关机

    mongod --shutdown
    
    然后

    成功了


    与我一起删除文件:/tmp/mongodb-27017.sock
    然后重新启动mongod

    Uhh这是我的mongo.conf:
    port=12345 dbpath=data logpath=log/mongod.log fork=true
    @Luster看起来你不是用YAML写的[格式。是这样吗?当我遇到这个错误时,是因为我的
    /tmp/mongodb-27017.sock
    文件属于
    root
    。即使是
    -v
    选项也无助于解决它。我最终删除了所有配置文件信息,因此它使用了默认值,然后它最终给了我正确的错误消息。如果侦听套接字是错误的,例如,如果将其配置为绑定到
    ::1
    ,即使禁用了IPv6,在日志文件中,例如
    var/log/mongodb/mongod.log
    中,您会发现类似于“无法为套接字分配请求的地址”的行.在我的情况下,这是因为
    root
    拥有
    /var/lib/mongo
    中的一些文件是的,这是我的情况,我在运行一个虚拟机,然后我的笔记本突然冻结。因为我刚刚创建了两个测试,所以我摆脱了
    LC_ALL=en_US.UTF-8
    LANG=en_US.UTF-8
    
    sudo dpkg-reconfigure locales
    
    for example:
        1.
            Failed to unlink socket file /tmp/mongodb-27017.sock Operation not permitted
                delete the sock file with `rm`
        
        
        2.
            WiredTiger error (13) [1596090168:830936][25997:0x7fe22f208b80], wiredtiger_open: __posix_open_file, 672: /data/mongo/WiredTiger.turtle: handle-open: open: Permission denied Raw: [1596090168:830936][25997:0x7fe22f208b80], wiredtiger_open: __posix_open_file, 672: /data/mongo/WiredTiger.turtle: handle-open: open: Permission denied
            Failed to start up WiredTiger under any compatibility version
            Reason: 13: Permission denied
            
                check the file permission or owner with `ls` then change to the wright permission with `chmod` or right owner with `chown`
    
    rpm -ivh --prefix=/apps/mongodb /apps/mongo_rpm_packages/mongodb-org-*.rpm 
    
    service start mongod
    
    mongod --shutdown
    
    service mongod restart