Node.js”;auth fail”;当连接到MongoDB Replicaset时,3台服务器中只有2台在运行
Node.js "auth fail" when connecting to MongoDB Replicaset with only 2 out of the 3 servers up
我在使用Node.js 中启用了身份验证的3个实例的副本集时遇到了一个奇怪的问题
我的问题是,当所有3台服务器都列在种子列表中时,在我的应用程序中,只要我连接到MongoDB,就会抛出一个"auth failed"错误。
如果我取出种子列表中的服务器,一切都会正常工作。
我正试图弄清楚我缺少了什么,以及是否有其他方法可以使用MongoClient从Node.js连接到Replicaset。
var seedlist = "SERVER1:27017,SERVER2:27017,SERVER3:27017";
var connectionString = "mongodb://" + dbuser + ":" + dbpassword + "@" + seedlist + "/" + databaseName;
对于本例,假设SERVER3已关闭。为什么把它列入名单会引起问题。Node的MongoDB客户端是否正在尝试对副本集的每个成员进行身份验证?
如果种子列表中只有一个成员有问题,我不确定我喜欢Node的Mongo客户端抛出异常的方式,但以下是我发现的问题原因。
事实证明,通过与Engineering的不当通信,Server3上的Mongod实例确实启动了。但是,此实例的身份验证尚未打开。
据我所知,Node.js的Mongo客户端将尝试向种子列表中的成员进行身份验证,并获取有关Replicaset的信息。在这种情况下,因为服务器3没有打开身份验证,所以它未能引发"auth fail"错误。
我的研究实际上很好,因为我发现种子列表不必包含复制集的每个成员。客户端将使用种子列表中的任何成员来自动确定副本集的所有成员。
相关文章:
- 与域在同一台计算机上运行的NODEJS服务器的CORS错误
- 通过开机自检将 XML 发送到另一台服务器
- 在两台不同的服务器上运行同一node.js应用程序的两个实例
- 将页面正文发送到另一台服务器
- 从另一台服务器安全地从JS发送到PHP
- Web应用程序的体系结构/设计,对另一台服务器进行了大量Ajax调用
- 将 mp3 文件从另一台服务器下载到我的服务器
- PDF.js:从另一台服务器读取文件
- 当本地主机服务器提供实际页面时,如何使用 socket.io 与另一台服务器通信
- 安装 Node.js 在服务器上从同一网络上的另一台计算机访问节点
- 如何在一台服务器中运行不同的.js文件.js NODE JS中的文件
- 如何使用JavaScript或jQuery从另一台服务器解析XML
- Socket.io和Websocket在同一台服务器上侦听
- 从另一台服务器获取node.js中的服务映像
- 正在将大型文件从nodejs上载到另一台服务器
- 如何使用AJAX从另一台服务器获取时间
- Node.js”;auth fail”;当连接到MongoDB Replicaset时,3台服务器中只有2台在运行
- 它能在JavaScript选项runat=“”中从另一台服务器调用js文件吗;服务器”;
- Jcrop在特定服务器上的IE8下失败,在另一台服务器上工作
- 插件加载程序(如果一台服务器出现故障)