我创建了文件夹/var/lib/mongodb/data/db
和sudo
。
我在.conf
文件更改为以下内容:dbpath=/var/lib/mongodb/data/db
,因为它似乎是mongodb使用的默认值,对吧?
所以我尝试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?
mongodb
用户/var/lib/mongodb/data/db
的用户权限如下:drwxr-xr-x mongodb mongodb mongodb
(与root
相同)
我在我的用户上运行ps aux | grep mongodb
,并且有一个进程正在运行,但我无法停止它。它会随操作系统自动启动。发生了什么事?为什么我不能设置该死的默认数据库数据路径?
我认为,问题是在~
之前你的路径。如果mongodb作为服务运行,则运行mongodb的用户为mongodb
。
如果你想将mongod作为服务运行,不要使用home directory快捷方式,而是使用db目录的全路径。
我建议你保存mongoDB数据库在/var
或/opt
文件夹。不在/home文件夹中,你应该确保用户权限是mongodb
。
mongodb在Ubuntu上使用的是/etc/mongod.conf
。如果你使用以前的配置格式,你应该修改dbPath
配置(在ubuntu中,默认是以前的格式)。
要停止服务自动启动,你应该使用sudo service mongod stop
。
upstart
服务启动的。参见/etc/init/mongod.conf