IllegalOperation:试图在 ubuntu 20.04 中的只读目录 MongoDB 上创建锁定文件
IllegalOperation: Attempted to create a lock file on a read-only directory MongoDB in ubuntu 20.04
我刚刚在我的远程 ubuntu 服务器上安装了 mongodb,以便将其与 angular 和 nodejs 项目一起使用。我使用 db.createUser 命令以及 mongo shell.
中的密码和角色创建了一个用户
然后,当我尝试使用以下命令启动具有访问控制的 mongodb 实例时:
mongod --auth --port 27017 --dbpath /var/lib/mongodb
显示错误:
IllegalOperation: Attempted to create a lock file on a read-only directory MongoDB
首先,您是否检查过文件夹/var/lib/mongodb
(ls -l /var/lib
)的权限?
文件夹及其内容应分配给 mongod
用户。如果您的系统中安装了 ACL 权限 (getfacl
),您还可以检查它。
如果权限似乎正确,请继续阅读以了解我如何在不同的环境中解决相同的错误。
在错误地重新安装 MongoDB 并且必须手动创建数据文件夹 /var/lib/mongo
之后,我在 CentOS 8 中发生了这种情况。在我的例子中,问题是必须更新 SELinux (https://www.redhat.com/en/topics/linux/what-is-selinux) 的安全上下文以授予 mongod
访问文件夹的权限。
下面的命令解决了我的问题(注意我的配置中数据文件夹的路径略有不同,只需根据您的情况更新即可):
chcon -Rv --type=mongod_var_lib_t /var/lib/mongo
它基本上告诉 SELinux MongoDB 用来访问文件的上下文应该与目标文件夹相关联。
您可以在此处获得有关 chcon
的更多信息:https://www.man7.org/linux/man-pages/man1/chcon.1.html
我刚刚在我的远程 ubuntu 服务器上安装了 mongodb,以便将其与 angular 和 nodejs 项目一起使用。我使用 db.createUser 命令以及 mongo shell.
中的密码和角色创建了一个用户然后,当我尝试使用以下命令启动具有访问控制的 mongodb 实例时:
mongod --auth --port 27017 --dbpath /var/lib/mongodb
显示错误:
IllegalOperation: Attempted to create a lock file on a read-only directory MongoDB
首先,您是否检查过文件夹/var/lib/mongodb
(ls -l /var/lib
)的权限?
文件夹及其内容应分配给 mongod
用户。如果您的系统中安装了 ACL 权限 (getfacl
),您还可以检查它。
如果权限似乎正确,请继续阅读以了解我如何在不同的环境中解决相同的错误。
在错误地重新安装 MongoDB 并且必须手动创建数据文件夹 /var/lib/mongo
之后,我在 CentOS 8 中发生了这种情况。在我的例子中,问题是必须更新 SELinux (https://www.redhat.com/en/topics/linux/what-is-selinux) 的安全上下文以授予 mongod
访问文件夹的权限。
下面的命令解决了我的问题(注意我的配置中数据文件夹的路径略有不同,只需根据您的情况更新即可):
chcon -Rv --type=mongod_var_lib_t /var/lib/mongo
它基本上告诉 SELinux MongoDB 用来访问文件的上下文应该与目标文件夹相关联。
您可以在此处获得有关 chcon
的更多信息:https://www.man7.org/linux/man-pages/man1/chcon.1.html