mongorestore总是返回连接错误

时间:2017-03-20 23:39:49

标签: mongodb heroku mlab

我已经使用mLab数据库成功执行了我的Heroku服务器的mongodump命令。 这是我使用的代码:

mongodump --host <thehost> -d <thedb> -u <username> -p <password>
--port 27175

转储成功完成。

现在我正在尝试在我的本地服务器上恢复此转储,但没有运气。 此错误显示

 Failed: error connecting to db server: no reachable servers

我试过的恢复代码:

mongorestore --db newdb /path/todump/file

mongorestore --db newdb

mongorestore  /path/todump/file

mongorestore --db newdb (run it inside the dump folder)

--host mongodb://[server-ip] --port [running-port] --db newdb /path/to/dump

我也试过从我的mac跑进来。 我在个人电脑上进行了转储。 然后跑了。

mongorestore --host mongodb://[server-real-ip] --port [running-port] --db newdb /path/to/dump

同样奇怪的是,我在本地或通过互联网执行[mongo]使我能够成功访问shell而没有任何错误。

mongo --host mongodb://[server-real-ip] --port [running-port]

我搜遍了每一个地方,并尝试了几乎所有我能找到的解决办法。 我做错了什么?

3 个答案:

答案 0 :(得分:2)

对于其他任何正在尝试的人,可能会犯一个比这更粗心的错误, 我已将数据库名称包含在主机输入中,同时也将数据库标志保留在那里。因此,只需确保准确指定主机和数据库。

答案 1 :(得分:0)

如果您只提供主机名或IP地址,而不使用 mongodb:// 前缀,Mongorestore应该可以正常工作。

答案 2 :(得分:0)

如果您的Mongo DB被安排为副本集,则必须使用PRIMARY节点作为--host。

要确定哪个节点是主节点,请使用mongo客户端连接到任何节点并获取副本集状态。

rs.status()
...
"members" : [
        {
            "_id" : 0,
            "name" : "mongo-00.node.cdvr:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
...