[英]Can ShardingTest() pass non-default dbpath to mongod?
我在OS X 10.11 / 15A263e上运行mongodb 3.0.6( homebrew ),无法通过ShardingTest的js代码指定非默认数据文件路径。
我想避免由于某些原因弄乱符号链接或/ data中的实际数据文件,但更重要的是想学习热学方法,使该类ShardingTest下的代码起作用:
manoa:dev mike$ mongo --nodb
MongoDB shell version: 3.0.6
> var options = { shardOptions : { dbpath : "/usr/local/var/mongodb" } };
> cluster = new ShardingTest( { shards : 3 }, { other : options } );
Resetting db path '/data/db/test0'
2015-08-31T07:54:03.707-0500 E QUERY Error: boost::filesystem::create_directory: No such file or directory: "/data/db/test0"
at Function.MongoRunner.runMongod (src/mongo/shell/servers.js:589:13)
at new ShardingTest (src/mongo/shell/shardingtest.js:259:36)
at (shell):1:11 at src/mongo/shell/servers.js:589
我查看了这篇很有帮助的文章 ,但是我的JS太弱了,无法从那里的帮助中进行概括,以弄清楚dbpath的设置方式以及哪些参数将覆盖默认路径。
有人可以提出一种方法来调试此脚本或提供实际语法以将我的首选数据库路径提供给ShardingTest函数吗?
MongoRunner.dataPath
用于构造数据库路径 :
this.getDBPaths = function() {
return _alldbpaths.map((path) => {
return MongoRunner.dataPath + path;
});
};
因此,您可以将其设置为所需的任何目录,例如:
// don't forget the trailing slash
MongoRunner.dataPath = '/home/your_user/data/db/'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.