什么是更正将语法添加到需要身份验证的mongo数据库的语法

时间:2018-01-18 14:27:00

标签: mongodb sharding

我正在尝试使用sh.addShard命令向mongos添加分片,如下所示:https://docs.mongodb.com/v3.4/tutorial/add-shards-to-shard-cluster/ 给出的例子是:

sh.addShard( "rs1/mongodb0.example.net:27018" )

但是我尝试连接的数据库需要身份验证。

sh.addShard( "rs0/admin:XXXXXpasswordXXXXXXXX@XXX.XX.XX.XXX:27018" )

将此消息返回:

  

“不止一个”:'检测到。如果这是ipv6地址,则需要   被'['和']'

包围

在没有auth的情况下运行命令返回:

  

“errmsg”:“管理员未授权执行命令{listDatabases:1,nameOnly:true}”

如何在保持正确语法的同时向主机添加身份验证凭据。

1 个答案:

答案 0 :(得分:1)

addShard()不会根据我的知识获取任何身份验证凭据。

确保您位于admin db use admin下,并确保在启用身份验证后成功验证db.auth("username", "password")

如果您的群集启用了keyFile身份验证,则需要将keyFile顶部复制到每个主机,并确保运行mongod的用户可以访问它(https://docs.mongodb.com/manual/tutorial/enforce-keyfile-access-control-in-existing-replica-set/