Mongodb 错误:环境变量 MONGODB_CONFIG_OVERRIDE_NOFORK == 1

问题描述 投票:0回答:1

几周前安装了mongodb并且运行良好,但是今天我发现服务器(centos7)出现错误

当我尝试连接时,这就是答案

mongosh -u user-p password --authenticationDatabase admin
Current Mongosh Log ID: *****
Connecting to:          mongodb://<credentials>@127.0.0.1:27017/?directConnection=true&serverSelectionT  imeoutMS=2000&authSource=admin&appName=mongosh+1.9.1
MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017

mongo 版本

db version v6.0.6
Build Info: {
    "version": "6.0.6",
    "gitVersion": "***",
    "openSSLVersion": "OpenSSL 1.0.1e-fips 11 Feb 2013",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "rhel70",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

这是我尝试在centos web面板中重新启动时出现的错误:

Environment variable MONGODB_CONFIG_OVERRIDE_NOFORK == 1, overriding "processManagement.fork" to false

日志文件

{"t":{"$date":"2023-05-30T23:16:54.136+00:00"},"s":"I",  "c":"CONTROL",  "id":20698,   "ctx":"-","msg":"***** SERVER RESTARTED *****"}
{"t":{"$date":"2023-05-30T23:16:54.138+00:00"},"s":"I",  "c":"CONTROL",  "id":23285,   "ctx":"main","msg":"Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'"}
{"t":{"$date":"2023-05-30T23:16:54.140+00:00"},"s":"I",  "c":"NETWORK",  "id":4915701, "ctx":"main","msg":"Initialized wire specification","attr":{"spec":{"incomingExternalClient":{"minWireVersion":0,"maxWireVersion":17},"incomingInternalClient":{"minWireVersion":0,"maxWireVersion":17},"outgoing":{"minWireVersion":6,"maxWireVersion":17},"isInternalClient":true}}}
{"t":{"$date":"2023-05-30T23:16:54.140+00:00"},"s":"I",  "c":"NETWORK",  "id":4648601, "ctx":"main","msg":"Implicit TCP FastOpen unavailable. If TCP FastOpen is required, set tcpFastOpenServer, tcpFastOpenClient, and tcpFastOpenQueueSize."}
{"t":{"$date":"2023-05-30T23:16:54.407+00:00"},"s":"I",  "c":"REPL",     "id":5123008, "ctx":"main","msg":"Successfully registered PrimaryOnlyService","attr":{"service":"TenantMigrationDonorService","namespace":"config.tenantMigrationDonors"}}
{"t":{"$date":"2023-05-30T23:16:54.407+00:00"},"s":"I",  "c":"REPL",     "id":5123008, "ctx":"main","msg":"Successfully registered PrimaryOnlyService","attr":{"service":"TenantMigrationRecipientService","namespace":"config.tenantMigrationRecipients"}}
{"t":{"$date":"2023-05-30T23:16:54.407+00:00"},"s":"I",  "c":"REPL",     "id":5123008, "ctx":"main","msg":"Successfully registered PrimaryOnlyService","attr":{"service":"ShardSplitDonorService","namespace":"config.tenantSplitDonors"}}
{"t":{"$date":"2023-05-30T23:16:54.407+00:00"},"s":"I",  "c":"CONTROL",  "id":23330,   "ctx":"main","msg":"ERROR: Cannot write pid file to {path_string}: {errAndStr_second}","attr":{"path_string":"/var/run/mongodb/mongod.pid","errAndStr_second":"No such file or directory"}}

我找不到 /var/run/mongodb,但它工作正常,知道会发生什么或该怎么办?

谢谢你

mongodb centos7
1个回答
1
投票

我猜你遇到了这个:/var/run 中的目录在硬重启后被删除

检查服务文件,例如与

systemctl cat mongod

为了使 mongod 运行,我将这些行放入文件中:

[Service]
User=mongod
Group=mongod
Environment="OPTIONS=-f /etc/mongod.conf"
EnvironmentFile=-/etc/sysconfig/mongod
ExecStart=/usr/bin/mongod $OPTIONS
ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb
ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb
ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb
ExecStartPre=/usr/bin/mkdir -p /var/lib/mongo
ExecStartPre=/usr/bin/chown mongod:mongod /var/lib/mongo
ExecStartPre=/usr/bin/chmod 0700 /var/lib/mongo
PermissionsStartOnly=true
PIDFile=/var/run/mongodb/mongod.pid
Type=forking

或者更新的版本是

[Service]
User=mongod
Group=mongod
Environment="OPTIONS=-f /etc/mongod.conf"
EnvironmentFile=-/etc/sysconfig/mongod
ExecStart=/usr/bin/mongod $OPTIONS
ExecStartPre+=/usr/bin/mkdir -p /var/run/mongodb
ExecStartPre+=/usr/bin/chown mongod:mongod /var/run/mongodb
ExecStartPre+=/usr/bin/chmod 0755 /var/run/mongodb
ExecStartPre+=/usr/bin/mkdir -p /var/lib/mongo
ExecStartPre+=/usr/bin/chown mongod:mongod /var/lib/mongo
ExecStartPre+=/usr/bin/chmod 0700 /var/lib/mongo
PIDFile=/var/run/mongodb/mongod.pid
Type=forking

注意,通常您不会直接编辑服务文件

/usr/lib/systemd/system/mongod.service
。当您运行 MongoDB 的任何更新时,它可能会被还原。相反,创建一个副本到
/etc/systemd/system/mongod.service
并将您的自定义设置放在那里。请参阅 /usr/lib/systemd/system 和 /etc/systemd/system 有什么区别?

© www.soinside.com 2019 - 2024. All rights reserved.