CNode

mongodb服务无法启动,但是直接启动数据库可以。

Cchuguixin发布于13 年前最后回复13 年前13 回复19295 浏览0 收藏

mkdir xxx后mongod --dbpath xxx初始化了一下,然后在另外的一个命令行中运行mongo显示已经链接。然后,更改mongo.conf个dbpath后,service启动,报错。我更改了xxx文件夹的权限后,仍然启动报错。已经删除过mongod.lock文件。现在,mongod命令能启动,而servce却不能启动,报错如下: 命令行中报错:ERROR: child process failed, exited with error number 45 log中:couldn't open /var/lib/mongo/xxx/local.ns errno:13 Permission denied error couldn't open file /var/lib/mongo/xxx/local.ns terminating 求解答。是有线程没有关闭吗?

查看回复

回复 (13)

C
chuguixin#1·13 年前
引用 jiyinyiyong/var/lib/mongo/xxx/local.ns 这个文件是什么情况, ls l 是什么?

@jiyinyiyong 我试了一下,如果只有权限还是会报错,将文件夹的所有者设置为mongodb后,能正常启动服务。我感觉是service启动,mongodb需要对这个文件夹和里面的文件有读写权限,而且文件夹和里面文件的所有者需要是mongodb。是这样吗?

X
xdpsee#2·13 年前

1、cmd.exe 要以管理员身份运行 2、--dbpath 参数结尾不要带"/" 3、--logpath 参数是文件

比如: mongod --logpath D:\mongodb-win32-x86_64-2.4.5\logs --logappend --dbpath D:\mongodb-win32-x86_64-2.4.5\data\db --directoryperdb --serviceName mongoDB --install

C
chuguixin#3·13 年前
引用 jiyinyiyong/var/lib/mongo/xxx/local.ns 这个文件是什么情况, ls l 是什么?

@jiyinyiyong 不确定,只试验的表现让我这样联想。至少service和直mongod存在一些权限方面的差异。

C
chuguixin#4·13 年前
J
jiyinyiyong#5·13 年前

/var/lib/mongo/xxx/local.ns 这个文件是什么情况, ls -l 是什么?

C
chuguixin#6·13 年前
引用 jiyinyiyong/var/lib/mongo/xxx/local.ns 这个文件是什么情况, ls l 是什么?

我以为local.ns是数据库初始化自动生成的。你说的“ls -l是什么”是想表达什么意思?还有一个疑问,有时候,use一个新数据库,会生成一个同名的文件夹,有时候不会,为什么呢?

J
jiyinyiyong#7·13 年前
引用 jiyinyiyong/var/lib/mongo/xxx/local.ns 这个文件是什么情况, ls l 是什么?

@chuguixin ls -l 是看具体的文件权限, 看一下也许会多看到点 比如这个: http://www.mkyong.com/mongodb/mongodb-couldnt-open-datadbyourdb-ns-errno13-permission-denied/ ns 文件问题不清楚

L
ldl694178563#8·13 年前

不知道对你有没有帮助http://www.9958.pw/post/mongodb_12596

C
chuguixin#9·13 年前
引用 ldl694178563不知道对你有没有帮助http://www.9958.pw/post/mongodb 12596

我直接mongod运行是可以的,没有报错~

C
chuguixin#10·13 年前
引用 jiyinyiyong/var/lib/mongo/xxx/local.ns 这个文件是什么情况, ls l 是什么?

@jiyinyiyong 有可能是这个原因,晚上回家试一下~

J
jiyinyiyong#11·13 年前
引用 jiyinyiyong/var/lib/mongo/xxx/local.ns 这个文件是什么情况, ls l 是什么?

@chuguixin 具体看吧. 我启动 MongoDB 都是用 root 的, 文件夹全是 root 所有

C
chuguixin#12·13 年前
引用 jiyinyiyong/var/lib/mongo/xxx/local.ns 这个文件是什么情况, ls l 是什么?

@jiyinyiyong 对的,我也是用root。表现就是:在数据库文件夹的所有者是root的情况下,直接用mongod命令可以启动数据库,而用service命令是不能启动的。我觉得读一下service相关的机制,就应该能了解具体原因了。

J
jiyinyiyong#13·13 年前
引用 jiyinyiyong/var/lib/mongo/xxx/local.ns 这个文件是什么情况, ls l 是什么?

@chuguixin 你是说 service 不是 root 权限跑的? 期待你看的结果 :)

参与回复
登录后即可参与回复。登录