gpt4 book ai didi

mongodb - Mongo 重启错误 --/var/run/mongodb/mongod.pid 存在

转载 作者:IT老高 更新时间:2023-10-28 13:09:20 25 4
gpt4 key购买 nike

我刚刚启动了一个新的 AWS Linux AMI 2016.09.1(HVM) 并下载了最新的 Mongodb 版本。我正在使用 MongoDB 版本 3.0.14。我将/etc/mongod.conf 更新为以下内容,

# mongod.conf

# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log

# Where and how to store data.
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:

# how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile

# network interfaces
net:
port: 27017
# bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on
all interfaces.


#security:

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options

#auditLog:

#snmp:

我第一次使用服务运行Mongodb,

sudo service mongod start

一切正常。当我停止 Mongodb 并重新启动时,

sudo service mongod stop
sudo service mongod restart

我收到以下错误,

Error starting mongod. /var/run/mongodb/mongod.pid exists.

这是日志文件/var/log/mongodb/mongod.log 中的内容,

2017-01-16T14:11:16.869+0000 I CONTROL  ***** SERVER RESTARTED *****
2017-01-16T14:11:16.872+0000 I CONTROL [initandlisten] MongoDB starting :
pid=2820 port=27017 dbpath=/var/lib/mongo 64-bit hos
t=ip-10-0-0-91
2017-01-16T14:11:16.872+0000 I CONTROL [initandlisten] db version v3.0.14
2017-01-16T14:11:16.872+0000 I CONTROL [initandlisten] git version:
08352afcca24bfc145240a0fac9d28b978ab77f3
2017-01-16T14:11:16.872+0000 I CONTROL [initandlisten] build info: Linux
ip-10-63-190-181 3.4.43-43.43.amzn1.x86_64 #1 SMP Mon
May 6 18:04:41 UTC 2013 x86_64 BOOST_LIB_VERSION=1_49
2017-01-16T14:11:16.872+0000 I CONTROL [initandlisten] allocator: tcmalloc
2017-01-16T14:11:16.872+0000 I CONTROL [initandlisten] options: { config:
"/etc/mongod.conf", net: { port: 27017 }, processMan
agement: { fork: true, pidFilePath: "/var/run/mongodb/mongod.pid" },
storage: { dbPath: "/var/lib/mongo", journal: { enabled: t
rue } }, systemLog: { destination: "file", logAppend: true, path:
"/var/log/mongodb/mongod.log" } }
2017-01-16T14:11:16.893+0000 E NETWORK [initandlisten] Failed to unlink
socket file /tmp/mongodb-27017.sock errno:1 Operation
not permitted
2017-01-16T14:11:16.893+0000 I - [initandlisten] Fatal Assertion
28578
2017-01-16T14:11:16.893+0000 I - [initandlisten]

***aborting after fassert() failure

我已经看到几个博客发布了关于这个问题的解决方案,但它们似乎都不起作用。周日花了一整天试图弄清楚这一点。在运行早期的 AWS 实例和 Mongo 之前从未遇到过这个问题。

最佳答案

好的,找到问题了。我按照上面 Dave Maples 的建议删除了/var/run/mongodb/mongod.pid 文件。但是,MongoDB 仍然无法运行。我再次查看了日志文件,现在看到它对这个文件大喊大叫,

/tmp/mongodb-27017.sock

看起来它没有正确的权限。我试过了,

sudo chown mongod:mongod /tmp/mongodb-27017.sock

而且效果很好。现在,当我多次启动/停止/重新启动 MongoDB 时,我不再遇到问题。我认为文件权限导致 MongoDB 无法正确清理自己并将/var/run/mongodb/mongod.pid 文件留在目录中。这导致“错误启动 mongod。/var/run/mongodb/mongod.pid 存在”错误。然而,这并不是真正的问题。真正的问题是/tmp/权限。删除 mongod.pid 文件并重新启动 Mongod 后查看日志文件显示权限问题。所以这就是解决问题的方法,

sudo rm /var/run/mongodb/mongod.pid
sudo chown mongod:mongod /tmp/mongodb-27017.sock

我敢打赌,如果我在新服务器上安装 MongoDB 之后立即尝试“sudo chown mongod:mongod/tmp/mongodb-27017.sock”,然后再运行 MongoDB,就可以避免这个问题。在这一天浪费了佛罗里达阳光明媚的一天。

关于mongodb - Mongo 重启错误 --/var/run/mongodb/mongod.pid 存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41678609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com