我已经在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
堆栈:
答案 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用户具有扩展权限,所以这没有道理吗?