我在部署一个软件创新实验室的计算机,安装的操作系统位Windows 和 Ubuntu 双系统。
Windwos下的MongoDB的dbpath已被我设为了e:\MongoData。
因为希望存在数据库里的数据可以在两个操作系统中都能被访问,所以我把Windows下的e:\分区挂在到了Ubuntu的/mnt/data,然后想通过将Ubuntu下的MongoDB的dbpath设为/mnt/data/MongoData来实现数据库的跨系统共享。
类似的操作我已在MariaDB(MySQL)中成功实施,但在MongoDB中遭遇了失败。
查了下资料,失败的原因大概是ntfs分区被挂到ubuntu下后,所有文件、文件夹的所有者都被自动设为root,权限自动设为任何人可读写,但mongoDB要求数据文件夹的所有者必须是mongodb:mongodb,因此造成mongoDB无法正常读写数据文件,因而启动失败。
我比较疑惑的是,既然ntfs分区内的内容是对所有人可读写的,那为什么mongoDB的服务进程会因为所有者是root而读写失败呢?还有我的这一需求应该以怎样的姿势实现才是正确的呢
Windwos下的MongoDB的dbpath已被我设为了e:\MongoData。
因为希望存在数据库里的数据可以在两个操作系统中都能被访问,所以我把Windows下的e:\分区挂在到了Ubuntu的/mnt/data,然后想通过将Ubuntu下的MongoDB的dbpath设为/mnt/data/MongoData来实现数据库的跨系统共享。
类似的操作我已在MariaDB(MySQL)中成功实施,但在MongoDB中遭遇了失败。
查了下资料,失败的原因大概是ntfs分区被挂到ubuntu下后,所有文件、文件夹的所有者都被自动设为root,权限自动设为任何人可读写,但mongoDB要求数据文件夹的所有者必须是mongodb:mongodb,因此造成mongoDB无法正常读写数据文件,因而启动失败。
我比较疑惑的是,既然ntfs分区内的内容是对所有人可读写的,那为什么mongoDB的服务进程会因为所有者是root而读写失败呢?还有我的这一需求应该以怎样的姿势实现才是正确的呢