Robo 3T 错误:网络无法访问
Posted
技术标签:
【中文标题】Robo 3T 错误:网络无法访问【英文标题】:Robo 3T Error : Network is unreachable 【发布时间】:2018-01-09 01:57:19 【问题描述】:我正在尝试将 Robo 3T 连接到我的在线数据库,但它似乎无法正常工作。我可以用它连接到本地数据库。我尝试使用 MongoDB Compass 进行连接,详细信息和身份验证工作正常,我能够连接。但是当我在 Robo 3T 中连接相同的细节时,它似乎不起作用。我该如何解决? 我正在使用 Robo 3T 1.1 版 我用 Robomongo 1.0 尝试过同样的错误,但仍然出现同样的错误
【问题讨论】:
嗨,你有解决这个问题的办法吗?在我的 Windows 机器上使用 Robo 3T 访问远程 mongo 数据库时,我遇到了同样的错误。 我无法解决这个问题,我认为这是单独远程数据库的问题,因为我现在可以连接其他四个远程数据库。 【参考方案1】:只需将 /etc/mongod.conf 中的 bind_ip 从 127.0.0.1 更改为 0.0.0.0 然后重新启动服务,它对我有用~
【讨论】:
这样做是最可怕的想法。现在 MongoDB 暴露在远程机器的每个端口上。让我们希望您在 MongoDB 中激活了身份验证和 TLS,并在配置的操作系统上配置了一个不错的蛮力拦截器。 @SaJed 如果它是公共服务器,请使用 ssh 隧道。 @silviazulinka 见上文 docs.mongodb.com/v3.2/reference/configuration-options/… Defualt :所有接口,在2.6中更改了默认配置文件设置net.bingIp为127.0.0.1。将 mongos 或 mongod 附加到可公开访问的接口时,请确保您已实施适当的身份验证和防火墙限制以保护数据库的完整性。 我不得不这样做作为快速修复;请注意,我在 docker 容器中本地运行 MongoDB,作为 POC 的开发环境【参考方案2】:更好的解决方案是从配置文件 /etc/mongod.conf
中注释掉或删除 bindIp 设置您必须重新启动服务才能使更改生效
【讨论】:
【参考方案3】:如果您收到以下错误,那么您还应该检查以下内容:
atlas 服务器至少需要这个设置,如果你不选择它,那么你通常会得到 Network is unreachable 消息。
此外,如果您使用的是 Atlas,那么您应该检查“身份验证”选项卡并选择 SCRAM-SHA-1,但这通常会导致身份验证错误,而不是网络无法访问的错误。
【讨论】:
【参考方案4】:我在 Mac 上使用 Robo 3T 时也遇到了这个问题。我认为您需要检查一些事项以帮助您了解问题所在。
首先尝试在终端中ping
mongo 服务器,看看是否可以得到响应。如果是这样,这意味着您可能在 Robo 3T 中设置了错误的 mongo 配置。
如果您无法获得响应,则表示您的网络有问题。您应该检查您的 DNS 和您的网络网关。例如,我的 DNS 是 172.16.*
,而我的网络网关(执行 ifconig
并检查 en0
)是 172.17.*
。而且它们不属于同一个网段。 (实际上,即使他们在同一个网段,如果有人污染了你的DNS服务器,事情也不会发生。)
这就是问题。您使用的 DNS 无法正确解释您的 mongo 主机。可能有人污染了这个 DNS 服务器。
您可以尝试使用ping xxx(your mongo-server) @8.8.8.8
,它将使用 8.8.8.8 作为您的 DNS。如果一切顺利,那么您将得到解决方案。
解决方案:为您的设备手动设置 DNS。例如,Google 的公共 DNS,8.8.8.8 和 8.8.4.4。
其实,如果你在手动设置DNS之前和之后运行dig xxx(your mongo-server)
,你可能会发现响应Ip不同。
【讨论】:
【参考方案5】:进入 MongoDB 的 bin 文件夹并运行 mongod
命令:- C:\Program Files\MongoDB\Server\4.2\bin
然后在此位置打开命令提示符并运行 mongod
命令 & 然后尝试与 Robo 3T 连接。这个对我有用。
还在您的C:
驱动器内创建数据文件夹,然后在数据文件夹内创建一个名为 db 的文件夹。就是这样。
【讨论】:
此解决方案在我的 Windows 7 系统中运行良好。【参考方案6】:从任务管理器启动 MongoDB 服务。 为我工作。
在我的例子中,mongod 和 mongo.exe 都抛出了 100 错误代码。
【讨论】:
【参考方案7】:我有这种症状,这里的答案还没有找到最终的解决办法。
我尝试使用 Robo 3T 连接到云中的 mongo 实例,但收到“网络无法访问”消息。
奇怪的是,我可以在同一台机器上的 Parallels VM 中使用 Robo 3T 进行连接。
这让我在我的 Mac 上尝试了完整的 Studio 3T,它也可以正常连接。
最终,我发现有一个来自旧版 Robomongo 的旧 dotfile 导致了问题。 rm -rf .config/robomongo
成功了。现在我可以连接普通的免费 Robo 3T。
我猜我有一个过期的 Robomongo 试用版,也许是在它免费之前?
【讨论】:
【参考方案8】:对不起,如果我迟到了,但我整个早上都在处理同样的问题。您必须先完成一些事情,以便轻松排除故障
-
从终端重启数据库,点击正确路径的数据库,让它在后台运行。
如果数据库正在运行,则检查本地主机地址,并将其替换为 127.0.0.1 而不是通用的 localhost:27017
【讨论】:
【参考方案9】:这可能会有所帮助,我的 robo mongo 服务器托管在云中。我已经设置了 mongodb,但无法使用 Robo3T 连接到它。不断告诉网络超时(这意味着网络问题)。看了很多资料想弄清楚原因,突然想起我的云网络中也有一个安全组。只需将 mongod 端口 27017 包含在允许的传入列表中即可。就是这样!
【讨论】:
【参考方案10】:您在启动 Robo 3T 应用程序时可能会看到以下问题:
只需按照以下步骤操作,您就可以开始了:
-
我使用的是 MacOS,所以在您的终端中使用以下命令来启动您的 MonogDB 服务器:
/Users/vanthoff/mongodb/bin/mongod --dbpath=/Users/vanthoff/mongodb-data
mongodb-data:
您必须创建的目录才能存储您的所有数据。
-
启动服务器后,转到
RoboT 3T Application
和connect to the server
。它将开始工作。您也可以通过双击您的 MongoDB 服务器名称来Test
它。当它开始工作时,它看起来像这样:
我希望它也对你有用。朋友们..!! ?
【讨论】:
【参考方案11】:进入services.msc,然后搜索mongodb server,然后在running状态下运行server。 我以这种方式解决了我的错误。
【讨论】:
【参考方案12】:对我来说,重新安装 mongodb 并重新启动我的电脑就可以了。
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案13】:如上所述,这可能是由于 BindIp,如果您使用 mac 和 brew 安装它,您将在 /etc/mongod.conf 中找不到任何内容,而是在 /usr/local/etc 中找到它/mongod.conf
systemLog:
destination: file
path: /usr/local/var/log/mongodb/mongo.log
logAppend: true
storage:
dbPath: /usr/local/var/mongodb
net:
bindIp: 127.0.0.1
谨慎更改BindIp!
运行它也是如此,手动启动 MongoDB:
mongod --config /usr/local/etc/mongod.conf
或通过键入以下命令配置登录时自动启动:
brew services start mongodb
我在这里的本地计算机上也遇到了损坏的数据文件:
/usr/local/var/mongodb
刚刚删除它们并且它起作用了,您可以在日志中看到如下错误:
** IMPORTANT: UPGRADE PROBLEM: The data files need to be fully upgraded to version 3.6 before attempting an upgrade to 4.0; see http://dochub.mongodb.org/core/4.0-upgrade-fcv for more details.
2018-08-01T00:15:50.220+0200 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2018-08-01T00:15:50.220+0200 I NETWORK [initandlisten] removing socket file: /tmp/mongodb-27017.sock
2018-08-01T00:15:50.224+0200 I STORAGE [initandlisten] WiredTigerKVEngine shutting down
2018-08-01T00:15:50.303+0200 I STORAGE [initandlisten] Downgrading WiredTiger datafiles.
2018-08-01T00:15:50.501+0200 I STORAGE [initandlisten] WiredTiger message [1533075350:501686][3594:0x7fffb492e380], txn-recover: Main recovery loop: starting at 14/3712
2018-08-01T00:15:50.598+0200 I STORAGE [initandlisten] WiredTiger message [1533075350:598867][3594:0x7fffb492e380], txn-recover: Recovering log 14 through 15
2018-08-01T00:15:50.664+0200 I STORAGE [initandlisten] WiredTiger message [1533075350:663976][3594:0x7fffb492e380], txn-recover: Recovering log 15 through 15
2018-08-01T00:15:50.715+0200 I STORAGE [initandlisten] WiredTiger message [1533075350:715398][3594:0x7fffb492e380], txn-recover: Set global recovery timestamp: 0
2018-08-01T00:15:51.002+0200 I STORAGE [initandlisten] shutdown: removing fs lock...
2018-08-01T00:15:51.005+0200 I CONTROL [initandlisten] now exiting
2018-08-01T00:15:51.005+0200 I CONTROL [initandlisten] shutting down with code:62
【讨论】:
【参考方案14】:这意味着 mongo 服务器没有启动。
您需要在终端上运行mongod
命令来启动服务器。
如果你的机器上没有安装 mongo db。从Link 下载并安装。
【讨论】:
【参考方案15】:在windows上启动你的命令提示符。通过命令提示符进入mongodb的bin文件夹,输入mongod回车。现在尝试再次访问
【讨论】:
以上是关于Robo 3T 错误:网络无法访问的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB GUI( Robo 3T) Shell使用及操作