几周前安装了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,但它工作正常,知道会发生什么或该怎么办?
谢谢你
我猜你遇到了这个:/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 有什么区别?