【问题标题】:Mongodb not starting on ubuntu 14.04Mongodb 未在 ubuntu 14.04 上启动
【发布时间】:2016-01-05 22:56:32
【问题描述】:

我正在尝试在本地安装和启动 mongodb:

我经历了这些步骤(如历史所示):

1819  sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv       7F0CEB10
1820  echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
1821  sudo apt-get update
1822  sudo apt-get install -y mongodb-org
1823  sudo service mongod start

但我在 /var/log/mongodb/mongodb.log 中得到以下错误日志

2016-01-05T22:51:21.869+0000 I CONTROL  [main] ***** SERVER RESTARTED *****
2016-01-05T22:51:21.874+0000 I CONTROL  [initandlisten] MongoDB starting :   pid=5394 port=27017 dbpath=/var/lib/mongodb 64-bit host=ip-172-31-45-129
2016-01-05T22:51:21.874+0000 I CONTROL  [initandlisten] db version v3.2.0
2016-01-05T22:51:21.874+0000 I CONTROL  [initandlisten] git version: 45d947729a0315accb6d4f15a6b06be6d9c19fe7
2016-01-05T22:51:21.874+0000 I CONTROL  [initandlisten] OpenSSL version:    OpenSSL 1.0.1f 6 Jan 2014
2016-01-05T22:51:21.874+0000 I CONTROL  [initandlisten] allocator: tcmalloc
2016-01-05T22:51:21.874+0000 I CONTROL  [initandlisten] modules: none
2016-01-05T22:51:21.874+0000 I CONTROL  [initandlisten] build environment:
2016-01-05T22:51:21.874+0000 I CONTROL  [initandlisten]     distmod: ubuntu1404
2016-01-05T22:51:21.874+0000 I CONTROL  [initandlisten]     distarch: x86_64
2016-01-05T22:51:21.874+0000 I CONTROL  [initandlisten]     target_arch: x86_64
2016-01-05T22:51:21.874+0000 I CONTROL  [initandlisten] options: { config: "/etc/mongodb.conf", net: { bindIp: "127.0.0.1" }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongodb.log" } }
2016-01-05T22:51:21.895+0000 E NETWORK  [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted
2016-01-05T22:51:21.895+0000 I -        [initandlisten] Fatal Assertion 28578
2016-01-05T22:51:21.895+0000 I -        [initandlisten] 

***aborting after fassert() failure

我之前安装了一个运行良好的 mongodb,但在我对使用 mongodb 的其他服务进行了一些更改后,我无法连接到它。所以我尝试删除该 mongodb 实例并尝试重新安装,之后我遇到了这个问题。

我也尝试查找文件:/tmp/mongodb-27017.sock,但它在我的系统上不存在。

【问题讨论】:

  • 我知道你说你找不到.sock 文件,但我必须在每次启动mongodb 之前运行sudo rm /tmp/mongodb-27017.sock,也许试试这个?
  • 我删除了该文件,但随后遇到了空间不足的问题。我正在完全编辑我的问题
  • 我也遇到过这个问题 - 必须更改数据在 conf 文件中的存储路径。类似于this blog post

标签: node.js mongodb installation ubuntu-14.04 database


【解决方案1】:

我以同样的方式安装 MongoDB 后遇到了同样的问题,还收到错误消息“无法取消链接套接字文件 /tmp/mongodb-27017.sock...”。

在做了更多挖掘之后,我意识到安装没有创建路径/data/db,所以这就是我所做的:

  1. 创建完整路径(-p 标志创建父文件夹,如果它们不存在)

    sudo mkdir -p /data/db 
    
  2. 递归地将文件夹/data/db的所有权更改为mongodb

    sudo chown -R mongodb:mongodb /data/db
    

编辑:如果您计划从不同的项目文件夹运行不同的 mongodb 实例,则您而不是 mongodb 应该是 /data/db 内容的所有者,否则它将给出你是 exception in initAndListen: 98 Unable to create/open lock file: /data/db/mongod.lock 类型的错误

  1. 删除临时套接字文件

    sudo rm /tmp/mongodb-27017.sock
    
  2. 初始化mongod服务

    sudo service mongod start
    

此后,它在我的系统中顺利运行。我可以启动或停止它,它不会再给我任何错误。

希望这会有所帮助:)

【讨论】:

    最近更新 更多