【发布时间】:2022-01-02 02:53:32
【问题描述】:
我在 GCP VM [Debian 10] 上安装了 mongodb (ver4.2)。当我检查“systemctl status mongod”时,我得到:
Nov 23 15:34:59 mongodbd4-vpc systemd[1]: Started MongoDB Database Server.
Nov 23 15:34:59 mongodbd4-vpc mongod.27017[5101]: 2021-11-23T15:34:59.751+0000 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
Nov 23 15:34:59 mongodbd4-vpc mongod.27017[5101]: 2021-11-23T15:34:59.759+0000 W ASIO [main] No TransportLayer configured during NetworkInterface startup
Nov 23 15:34:59 mongodbd4-vpc mongod.27017[5101]: 2021-11-23T15:34:59.760+0000 I ACCESS [main] Error reading file /db/mongodb-keyfile: Permission denied
Nov 23 15:34:59 mongodbd4-vpc systemd[1]: mongod.service: Main process exited, code=exited, status=1/FAILURE
Nov 23 15:34:59 mongodbd4-vpc systemd[1]: mongod.service: Failed with result 'exit-code'.
这是我的 ./etc/mongod.conf:
storage:
dbPath: /db
journal:
enabled: true
engine: wiredTiger
systemLog:
destination: syslog
net:
port: 27017
bindIp: 0.0.0.0
tls:
mode: preferTLS
certificateKeyFile: /certs/mongodb.pem
CAFile: /certs/ca.pem
allowConnectionsWithoutCertificates: true
security:
keyFile: /db/mongodb-keyfile
authorization: enabled
这是我在 /db 中的 ls -al:
drwxr--r-- 2 mongodb mongodb 4096 Nov 23 15:37 journal
-rw-rw-r-- 1 mongodb mongodb 5 Nov 23 15:37 mongod.lock
-r-------- 1 mongodb mongodb 1004 Nov 23 15:02 mongodb-keyfile
-rw-r--r-- 1 mongodb mongodb 36864 Nov 23 15:39 sizeStorer.wt
-rw-r--r-- 1 mongodb mongodb 114 Nov 23 12:14 storage.bson
对于 /certs:
-rw-r--r-- 1 mongodb mongodb 1338 Nov 23 12:06 ca.pem
-rw-r--r-- 1 mongodb mongodb 5762 Nov 23 14:51 mongodb.pem
两个文件夹本身都有权限:
drwxr-xr-x 2 mongodb mongodb 4096 Nov 23 14:51 certs
drw-rw-r-- 4 mongodb mongodb 4096 Nov 23 15:40 db
知道为什么它会因权限被拒绝而失败吗?
【问题讨论】:
-
如何启动mongod,即哪个用户?
-
我从 root 用户运行 'systemctl start mongod'。
-
哪个用户运行mongod进程?查看服务文件
-
也许将密钥文件放入
dbPath文件夹不是最聪明的方法。我更喜欢 mongodb 用户主文件夹。 -
运行
systemctl show mongod -p FragmentPath在这个文件中你应该找到一个条目User=...,见freedesktop.org/software/systemd/man/systemd.exec.html