我使用/var/lib/mongodb/data/db
创建了文件夹sudo
。
我将.conf
文件更改为以下内容:dbpath=/var/lib/mongodb/data/db
因为它似乎是Mongo数据库使用的默认设置,对吧?
所以我尝试sudo mongod
,我仍然得到
exception in initAndListen: 29 Data directory /data/db not found., terminating
我尝试sudo service mongod start
并收到日志错误:
Unable to create/open lock file: /var/lib/mongodb/data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?
/var/lib/mongodb/data/db
用户的mongodb
用户权限如下:drwxr-xr-x mongodb mongodb mongodb
(与root
相同)
我在我的用户上运行ps aux | grep mongodb
并且正在运行一个进程,但我无法阻止它。它随OS自动启动。到底是怎么回事?为什么我不能设置该死的默认数据库数据路径?!
答案 0 :(得分:1)
我认为问题出在前面~
。
如果您将mongodb作为服务运行,则运行mongoDB的用户为mongodb
。
如果您想将mongod作为服务运行,请不要使用主目录快捷方式,而是使用db目录的完整路径。
我建议您将mongoDB数据库保存在/var
或/opt
文件夹中。不在/ home文件夹中,您应确保用户权限为mongodb
。
Ubuntu上的mongodb服务使用了/etc/mongod.conf
。如果您使用以前的配置格式,则应修改dbPath
配置(在ubuntu中,默认情况下,它是以前的格式)。
要使用ubuntu自动停止服务启动,您应该使用sudo service mongod stop
。
在您的问题中,我认为不是mongod服务运行正常吗?在这种情况下,您应该找到启动程序。你用的是什么版本的ubuntu和mongodb?如果您使用的是ubuntu 2.6,通常是upstart
服务的启动。请参阅/etc/init/mongod.conf