我刚刚启动了一个新的AWS Linux AMI 2016.09.1(HVM),并下载了最新的Mongodb版本.我使用的是MongoDB版本3.0.14.我更新了/etc/mongod.请注意:,

# 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.

下面是日志(log)文件/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之前,从未出现过这个问题.

推荐答案

好的,找到了一个更好的解决方案,解决了我第一个答案中的问题.我之前的回答只是消除了症状.我看到其他几个人不得不浏览其他各种目录.我认为问题在于mongod没有正确重启,并且在失败时错误地设置了许多目录.我怀疑有多个线程正在运行,所以设置不正确的目录有点随机.我正在使用亚马逊的AWS AMI Linux版本并安装MongoDB 3.4.我在上找到了一个非常好的MongoDB安装脚本

 https://docs.mongodb.com/manual/tutorial/install-mongodb-on-amazon/

这就是解决办法.我测试了几次,每次都有效.像往常一样安装mongo.如果有帮助,请使用上面的脚本.在开始mongod之前,请执行以下命令,

sudo chkconfig mongod on

您会注意到,上面的安装脚本突出显示了chkconfig,但在脚本的底部可能看不到它.这将确保每次都能成功重启mongod.这应该适用于其他linux版本.

Mongodb相关问答推荐

MongoDB通过查找具有多个数组的对象进行聚合

在出现错误时忽略mongodb事务回滚是好做法吗

Mongo DB-如果一个特定字段有多个文档匹配,则更新文档字段

如何将空值单独分组?

如何在Mongo中制作全覆盖索引

MongoDB 投影按数组中的字符串长度排序

MongoDB:从开始日期和结束日期数组中匹配特定日期的聚合查询

从 MongoDB 中的聚合结果中获取不同的值

Mongodb聚合中基于其他字段值的多个条件的动态新字段值

$eq 的目的是什么

MongoDB 是否重用已删除的空间?

删除嵌套文档数组中的嵌入文档

MongoDB 1.6.5:如何重命名集合中的字段

mongoose递归填充

如何将转储文件夹导入 mongodb 数据库?

我如何将 mongodb 与electron一起使用?

我可以使用字符串作为 mongodb 文档的 ID 类型吗?

与 mongoose/node.js 共享数据库连接参数的最佳方式

带有条件的MongoDB聚合查找

如何使用 Spring 的 MongoTemplate 和 Query 类检索字段子集?