Bug复现
就在昨天快快乐乐升级macOS Cataline之后,一切都还是那么舒服,直到刚才需要启动MongoDB数据库,就在我自信地在shell中输入mongod之后报了个错,看都没看就sudo mongod,嗯???
Data directory /data/db not found., terminating
谁把我dbpath目录删了???重建呗——sudo mkdir /data,大问题来了:
mkdir: data: Read-only file system
遂尝试各种增加权限方法,无效,直到看到了一篇文章讲到问题出在新系统Catalina默认不允许往系统分区写文件,亲试解决方法有效后在此记录下步骤。
Figure out
关闭本机SIP(系统完整性保护)
终端中输入csrutil status
后返回System Integrity Protection status: enabled
.说明SIP处于开启状态。
重启电脑,按住command + R
直至进入系统恢复界面,然后点击实用工具选择终端:
输入csrutil disable
关闭SIP:
权限获取
重新启动电脑,shell中输入sudo mount -uw /
,然后就有权限在根目录创建文件夹了,MongoDB的启动问题得解。
如果此时还是报错没有权限,请再尝试以下步骤:
-
桌面使用
shift + command + C
前往电脑磁盘 -
右击Macintosh HD磁盘选择显示简介
-
在共享与权限中添加自己的用户为管理员并设置读与写权限
-
重新创建文件夹
因为使用MongoDB会更改/data/db文件,所以不能重新开启SIP,否则还是会报错权限问题,而SIP一直处于关闭状态实际上会导致电脑有一定的安全隐患,详情请查阅关于Mac上的系统完整性保护,希望后续能有更好的解决途径吧。