StackOverflow上面的答案,对我最有用的一个。
I was struggling with this issue, and realized that if you list you list your destination folder with ls -lahZ it will give you the security context, the context for the mongo data folder should be set like: "sudo chcon -R -u system_u -t mongod_var_lib_t /folder/data" this besides the obvious permissions and user:group combination. Hope it helps. – jmdiego Feb 18 '15 at 7:17
具体操作步骤如下。
ls -lahZ /data/db
[root@db opt]# ls -lahZ /srv/mongodb/
drwxr-xr-x. mongod mongod system_u:object_r:unlabeled_t:s0 .
drwxr-xr-x. root root system_u:object_r:var_t:s0 ..
drwxr-xr-x. mongod mongod unconfined_u:object_r:unlabeled_t:s0 log
-rw-r--r--. mongod mongod unconfined_u:object_r:unlabeled_t:s0 mongod.lock
查看mongo默认的数据存储路径属性。
[root@db opt]# ls -lahZ /var/lib/mongo/
drwxr-xr-x. mongod mongod system_u:object_r:mongod_var_lib_t:s0 .
drwxr-xr-x. root root system_u:object_r:var_lib_t:s0 ..
-rw-------. mongod mongod system_u:object_r:mongod_var_lib_t:s0 admin.0
-rw-------. mongod mongod system_u:object_r:mongod_var_lib_t:s0 admin.ns
drwxr-xr-x. root root unconfined_u:object_r:mongod_var_lib_t:s0 back
drwxr-xr-x. mongod mongod system_u:object_r:mongod_var_lib_t:s0 journal
-rw-------. mongod mongod system_u:object_r:mongod_var_lib_t:s0 local.0
-rw-------. mongod mongod system_u:object_r:mongod_var_lib_t:s0 local.ns
-rw-r--r--. mongod mongod system_u:object_r:mongod_var_lib_t:s0 storage.bson
drwxr-xr-x. mongod mongod system_u:object_r:mongod_var_lib_t:s0 _tmp
修改目标目录。
[root@db opt]# chcon -R -u system_u -t mongod_var_lib_t /data/db/
启动mongodb。
[root@db opt]# service mongod start
Starting mongod (via systemctl):
[ 确定 ]