我正在尝试使用以下命令从Ubuntu连接到副本集:
return when.promise(function(resolve,reject){
new MongoClient().connect(url, {replSet: options }, function(err, db){
console.dir(err)
if (err)
reject(err);
resolve(db);
});
});
Url如下所示:
'mongodb://mongo1.mysite.com:36108,mongo2。我的网站。com:36108,mongo3。我的网站。com:36108/db_配置?w=0'
我正在连接多个数据库,偶尔会看到以下错误:
{name:'MongoError',消息:“列表中没有有效的种子服务器”}
和节点。js崩溃了。
我现在有点迷路了。主要的问题是它在MAC上运行得很好,我只在Ubuntu上看到这个问题。我正在使用node的最新mongo驱动程序。js
更新
我查看了本机驱动程序源代码:
http://mongodb.github.io/node-mongodb-native/core/api/replset.js.html
发现错误是由这个条件触发的(第987行):state.initialConnectionServers==0
仍然不确定为什么会发生这种情况。
请遵循rinchnik和Gabe rainbow给出的解决方案。如果问题仍然存在,请将模块“mongodb”更新为2.2.27版,“mongoose”更新为4.9.1版。
增加文件描述符的数量解决了这个问题。
在Ubuntu 12.04.5上,LTS的默认值是1024,这还不够。
不同的是,你没有一个副本集在你自己的单一mac(osx?)上笔记本电脑/台式机。它在独立模式下运行。但在这3台服务器上确实有或打算有一个副本集。
以下是所提供字符串的一些潜在问题。
1) 27017是mongo的默认端口,除非它被特别更改为36108,否则这是不正确的。
mongodb://mongo1.mysite.com:36108,mongo2.mysite.com:36108,mongo3.mysite.com:36108/db_config?w=0
尝试
mongodb://mongo1.mysite.com:27017,mongo2.mysite.com:27017,mongo3.mysite.com:27017/db_config?w=0
2)w=0对我来说很陌生,也许它是您的副本集的名称。通常副本集的连接字符串如下,其中rs0是副本集的名称。
mongodb://mongo1.mysite.com:27017,mongo2.mysite.com:27017,mongo3.mysite.com:27017/replicaSet=rs0
3) 您可能没有配置副本集。检查rs.config
登录服务器mongo1。我的网站。通用域名格式
使用mongo admin-u clusteradmin-p whateverpassword进入mongo shell
类型
rs.config()
如果您没有看到以下内容,则您没有要连接的副本集。这里rs0是副本集的名称。你的名字可能叫w???
{
"_id" : "rs0",
"version" : 4,
"members" : [
{
"_id" : 0,
"host" : "mongo1.mysite.com:36108"
},
{
"_id" : 1,
"host" : "mongo2.mysite.com:36108"
},
{
"_id" : 2,
"host" : "mongo3.mysite.com:36108",
}
]
}
rs.add(“mongo1.mysite.com:36108”)//或带有“mongo1.mysite.com:27017”的默认端口rs.add(“mongo2.mysite.com:36108”)rs.add(“mongo3.mysite.com:36108”)
但比任何事情都好的是刷起o个副本集,包括此文档,以将独立副本集转换为副本集
给定的 /db_config字符串看起来像一个rs.config()等效的命令,但通过超文本传输协议完成,并期望将服务器列表添加到副本集。但是坦率地说,你不能连接到副本集来配置它?所以这看起来很奇怪。你可以连接到主服务器,所以试试
mongodb://mongo1.mysite.com:36108/db_config?w=mongo1.mysite.com:36108,mongo2.mysite.com:36108,mongo3.mysite.com:36108
nvm版本- nodejs-v显示的是v0.10.25,它在/usr/bin中非常旧,但没有安装“node”。 需要安装节点4。作为node的新手,任何帮助都将不胜感激。
在Spring MVC REST服务(json)中,我有一个控制器方法,如下所示: 其中MyBean类具有bean验证注释。 在这种情况下,验证似乎没有发生,尽管它对其他控制器很有效。 我不想将列表封装在dto中,这样会改变json输入。 为什么没有对bean列表的验证?有哪些替代方案?
我正在尝试使用mongodb连接mongodb。MongoClient。带有简单url连接字符串集的connect()。当我启动服务器时,它会抛出错误 这是我的代码,我要通过三个mongodb服务器,如下所示 mongoDB版本=2.2.3 mongdb lib版本=1.3.18 但我不知道会有什么问题。这个问题也发生在我的生产设置中。
问题内容: 我当时正在编写一个简短的脚本来更改元素的内部文本,但是发现它没有方法。我知道那不是继承自,但似乎不是一种有用的方法吗?是否有一个具体的实施问题,我不知道阻止添加的到? 注意:我知道Dojo和jQuery 的节点列表都有某种形式。由于限制,我无法使用任何一个。 问题答案: 现在,NodeList在所有主要浏览器中都具有forEach() 原始答案 这些答案都不能解释 为什么 NodeLi
我正在努力学习RCP中的TreeViewer。我为此写了一小段代码。 我的代码哪里有问题? 谢了!
我有游戏对象的n-ary树。用户随机选择树中的一些对象并想要删除。问题在于,有些对象是另一个对象的子对象。事实证明,每次删除层次结构中的节点后,我必须遍历所有选定的节点并将其删除。算法是否比 O (n^2) 快? upd:为了更清楚我需要什么,我写了伪代码: