MongoDB服务没有启动。错误:13许可被拒绝

时间:2014-12-06 01:36:42

标签: mongodb ubuntu service

我已经在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

2 个答案:

答案 0 :(得分:17)

我们必须使 mongod用户拥有所有目录/文件。为此:

sudo chown -R mongodb:mongodb /data/db

答案 1 :(得分:1)

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

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

$ sudo systemctl启动mongod(失败,并显示一条消息,没有写mongodb.log的权限)。.但是,如果我使用相同的配置文件启动,则成功

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

我最终发现..符号链接指向另一个文件系统,而 mongodb(用户)没有浏览符号链接引用的文件夹的权限。符号链接和符号链接引用的文件夹都对mongod用户具有扩展权限,所以这没有道理吗?