我已经使用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]
我搜遍了每一个地方,并尝试了几乎所有我能找到的解决办法。 我做错了什么?
答案 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",
...