【问题标题】:MongoDB service doesn't start. errno:13 Permission deniedMongoDB 服务未启动。 errno:13 权限被拒绝
【发布时间】:2014-12-06 01:36:41
【问题描述】:

我已经在 Ubuntu 服务器上安装了 MongoDB,如文档 http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/ 中所示。然后,我修改了配置文件/etc/mongod.conf,以便稍后运行mongod服务。

如果我执行,MongoDB 会正常运行:

sudo mongod -f /etc/mongod.conf

但如果我执行,MongoDB 就会停止:

sudo service mongod start

在配置文件/etc/mongod.conf我只改变了这个:

dbpath=/data/db
logpath=/root/logs/mongod.log
port=20000

使用此配置,日志文件也不会创建。

如果我不修改之前指示的值,服务将正确启动。默认值为:

dbpath=/var/lib/mongodb
logpath=/var/log/mongodb/mongod.log
port = 27017

因为没有使用自定义配置创建日志文件,所以我只更改了dbpath以查看错误:

[initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?

我尝试运行以下命令但没有成功:

sudo chown -R `id -u` /data/db

sudo rm /var/lib/mongodb/mongod.lock
mongod --repair

堆栈:

  • Ubuntu 14.10
  • MongoDB 2.6.5

【问题讨论】:

  • 你的'/data/db'文件夹的权限是什么?
  • 为什么 chown id -u?你不想让所有的目录/文件都归 mongod 用户所有吗?
  • 好的!与sudo chown -R mongodb:mongodb /data/db 一起工作。权限为 775。感谢您的回复。

标签: mongodb ubuntu service


【解决方案1】:

我们必须将所有目录/文件都归 mongod 用户所有。为此:

sudo chown -R mongodb:mongodb /data/db

【讨论】:

    【解决方案2】:

    我发现了一个使用符号链接似乎失败的特殊情况:

    使用 mongodb 的标准企业安装,但我将 /var/lib/mongodb 更改为符号链接,因为我想为我的数据库文件夹使用 XFS 文件系统,为日志文件夹使用第三个文件系统。

    $sudo systemctl start mongod(失败并显示没有权限写入 mongodb.log).. 但如果我从相同的配置文件开始,它成功

    .. 作为外部驱动器 (ziggy) 的所有者,我能够启动 $mongod --config /etc/mongodb.conf --fork

    我最终发现.. 符号链接指向不同的文件系统并且 mongodb(用户)没有权限浏览符号链接所引用的文件夹。符号链接和符号链接引用的文件夹都对 mongod 用户具有广泛的权限,所以这没有意义吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-20
      • 2011-06-11
      • 2014-07-15
      • 2015-07-17
      • 2016-07-25
      • 2013-06-12
      • 2016-05-07
      • 2013-05-02
      相关资源
      最近更新 更多