我正在尝试用 bindip、复制名称等替换 mongod.conf 文件后重新启动 mongodb 服务。但不幸的是,它失败了,并声明无法打开日志文件权限被拒绝。
cat /etc/mongod.conf
systemLog:
destination: file
path: "/data/log/test.log"
logAppend: true
net:
bindIp: 0.0.0.0
port: 27017
storage:
dbPath: "/data/dbdata/"
replication:
replSetName: "rs0"
msg":"Error during global initialization","attr":{"error":{"code":38,"codeName":"FileNotOpen","errmsg":"Failed probe for \"/data/log/test.log\": Permission denied"}}}
ls -la /data/log
total 0
drwxrwxrw-. 2 mongod mongod 22 Jun 7 06:33 .
drwxrwxrw-. 5 mongod mongod 42 Jun 7 05:34 ..
-rwxrwxrwx. 1 mongod mongod 0 Jun 7 06:33 test.log
ls -la /data/
total 0
drwxrwxrw-. 5 mongod mongod 42 Jun 7 05:34 .
dr-xr-xr-x. 18 root root 236 May 4 17:30 ..
drwxrwxrw-. 2 mongod mongod 6 Jun 7 05:34 dbdata
drwxrwxrw-. 2 mongod mongod 22 Jun 7 06:33 log
ls -ld /data
drwxrwxrw-. 5 mongod mongod 42 Jun 7 05:34 /data
注意:/data/dbdata,/data/log 是挂载点
答案 0 :(得分:0)
按照官方文档中提供的 selinux 设置所需的步骤修复了该问题
yum install -y policycoreutils-python-utils
semanage fcontext -a -t mongod_var_lib_t /data/dbdata.*
semanage fcontext -a -t mongod_log_t /data/log.*
chcon -Rv -u system_u -t mongod_var_lib_t /data/dbdata
chcon -Rv -u system_u -t mongod_log_t /data/log
restorecon -R -v /data/dbdata
restorecon -R -v /data/log