mongorestore失败:没有可访问的服务器

时间:2015-05-07 06:45:15

标签: mongodb

我尝试从转储中恢复mongo但失败了:

mongorestore --port 27133 dump
2015-05-07T09:39:11.760+0300    Failed: no reachable servers

虽然我可以毫无问题地连接到它:

$ mongo --port 27133
MongoDB shell version: 3.0.1
connecting to: 127.0.0.1:27133/test

在日志文件中没有什么特别之处:

2015-05-07T09:37:00.350+0300 I NETWORK  [initandlisten] connection accepted from 127.0.0.1:44901 #1 (1 connection now open)
2015-05-07T09:37:13.935+0300 I NETWORK  [conn1] end connection 127.0.0.1:44901 (0 connections now open)
2015-05-07T09:39:08.752+0300 I NETWORK  [initandlisten] connection accepted from 127.0.0.1:44906 #2 (1 connection now open)
2015-05-07T09:39:11.763+0300 I NETWORK  [conn2] end connection 127.0.0.1:44906 (0 connections now open)
2015-05-07T09:39:52.365+0300 I NETWORK  [initandlisten] connection accepted from 127.0.0.1:44907 #3 (1 connection now open)
2015-05-07T09:39:55.064+0300 I NETWORK  [conn3] end connection 127.0.0.1:44907 (0 connections now open)
2015-05-07T09:40:11.272+0300 I NETWORK  [initandlisten] connection accepted from 127.0.0.1:44909 #4 (1 connection now open)
2015-05-07T09:40:14.281+0300 I NETWORK  [conn4] end connection 127.0.0.1:44909 (0 connections now open)

更新

主持人127.0.0.1没有帮助

$ mongorestore --host=127.0.0.1 --port=27132 dump
2015-12-16T18:52:33.270+0300    Failed: no reachable servers

虽然我仍然可以使用mongo命令进行连接:

$ mongo --host=127.0.0.1 --port=27133
MongoDB shell version: 3.2.0
connecting to: 127.0.0.1:27133/test
> ^C
bye

主持人0.0.0.0也没有帮助:

$ mongorestore --host=0.0.0.0 --port=27133 dump

我有3.2版本的MongoDb:

$ mongorestore --version
mongorestore version: 3.2.0-rc5
git version: 6186100ad0500c122a56f0a0e28ce1227ca4fc88

11 个答案:

答案 0 :(得分:47)

尝试添加主机参数

mongorestore --host=127.0.0.1 --port=27133 dump

答案 1 :(得分:22)

发生此问题是因为配置中启用了--replSet。但该节点尚未出现在任何副本集中。

从配置中删除--replSet后,重启了mongodb服务器,mongorestore开始工作,没有任何--host参数。

答案 2 :(得分:19)

您是否在副本集中运行 mongo ,即mongod --replSet rs0

如果是,请记住在你的mongo shell中运行命令:rs.initiate()

然后您可以使用cmd mongorestore恢复数据库。

答案 3 :(得分:16)

我通过Homebrew安装了MongoDB,并且遇到了这个问题。以下是症状:

这些失败了:

mongorestore dump

mongorestore dump --host=localhost

我收到的错误:Failed: error connecting to db server: no reachable servers

这些工作(作为解决方法):

mongorestore dump --host=127.0.0.1

mongorestore dump --host=0.0.0.0

这解决了我的问题:

brew update && brew upgrade

将MongoDB更新为3.0.7,现在mongorestore dump在没有主机标志的情况下工作。

答案 4 :(得分:4)

检查你的mongod配置文件,如果你已启用复制禁用它,如果启用,基于密钥的身份验证禁用它基本上禁用所有其他东西并重新启动mongod服务然后尝试执行mongo恢复。

顺便说一句,尝试将mongod ipaddress绑定到你的机器地址,如果是本地mongod实例,请尝试将ip地址绑定到0.0.0.0,在bind_ip =&#34下的mongod.conf文件中;你的ip地址&# 34;,请让我知道它有没有。

答案 5 :(得分:2)

我也很难解决这个问题。

mongorestore --host f8cab83e7294 --port 27601 gene_backup_final/gene_backup/s2/  --verbose

2016-12-05T13:48:15.333-0700 Failed: error connecting to db server: no reachable servers

我无法启动副本集。这就是为什么没有可达的服务器

启动RS后,恢复工作。

mongo localhost:27501
rs.initiate()

答案 6 :(得分:1)

在我的情况下(使用Mongo 3.2.9),服务器配置为侦听IPv4 localhost地址(127.0.0.1)但mongorestore仅尝试IPv6 {{1}地址(localhost)。

使用::1工作。但是,这不应该是必要的,恕我直言,并且是-h 127.0.0.1中的错误。它应该使用与mongorestore命令行客户端相同的连接逻辑,该客户端正在运行。

注意:未启用副本集。

答案 7 :(得分:1)

在使用MongoDB Atlas几个小时时,我也遇到了同样的问题。

我尝试遵循Seed with mongorestoreLoad File with mongoimport之类的官方指南,但收到相同的no reachable servers错误。

我试图一遍又一遍地更改命令参数-没有任何改变。

但是随后我在集群内部导航至“命令行工具”选项卡,并看到了我应该为mongorestoremongodump,{{1}运行的确切命令 },mongoimport等:

enter image description here

以内联方式添加完整命令:

mongoexport

mongorestore --host <cluster-name>-shard-0/ <cluster-name>-shard-00-00-obe3i.mongodb.net:27017, <cluster-name>-shard-00-01-obe3i.mongodb.net:27017, <cluster-name>-shard-00-02-obe3i.mongodb.net:27017 --ssl --username <User-Name> --password <PASSWORD> --authenticationDatabase admin 命令可以替换为mongorestoremongodumpmongoimport等。

(*)最好直接从仪表板复制命令,因为副本集的DNS可能会更改。

(**)MongoDB Shell版本v4.2.5。

答案 8 :(得分:0)

我有同样的问题。我试图在恢复转储之前启动mongod,它对我有用。希望这有助于这种情况

答案 9 :(得分:0)

就我而言,我定义了两次端口。

  

mongorestore --noIndexRestore --host X.X.X.X: 27017 -d XYZ --port    27017 文件夹名称

解决我的情况,

  

mongorestore --noIndexRestore --host X.X.X.X -d XYZ --port    27017 文件夹名称

答案 10 :(得分:0)

如果您使用的是托管服务(例如MongoDB Atlas),请确保已设置IP白名单,以免阻止您的IP地址。您可以将其设置为0.0.0.0/0以将所有IP地址列入白名单,但这在安全性方面是个坏主意,因此只能将其用作临时措施。