- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我只使用基本 mongo:3.6.4 官方 docker 镜像创建了一个 Mongo 容器,并将其部署到我的 OpenShift OKD 集群,但无法使用集群外部的 Mongo 客户端连接到此 MongoDB 实例。
我可以通过 http://mongodb.my.domain 访问该 pod并成功获得“看起来您正试图在 native 驱动程序端口上通过 HTTP 访问 MongoDB”。信息。
在 pod 上使用终端时,我可以使用以下命令成功登录:
mongo "mongodb://mongoadmin:pass@localhost"--authenticationDatabase admin
但是当尝试从 OKD 外部连接时,连接失败。
我的客户需要通过代理才能访问 OKD pod,并且我确实有一个 .der 证书文件,但不确定这是否与问题有关。
我尝试过的一些命令:
mongo "mongodb://mongoadmin:pass@mongodb.my.domain:80"--authenticationDatabase admin
mongo --ssl "mongodb://mongoadmin:pass@mongodb.my.domain:80"--authenticationDatabase admin
我希望能够成功连接,但收到此错误消息:
MongoDB shell version v3.4.20
connecting to: mongodb://mongoadmin:pass@mongodb.my.domain:80
2019-05-15T11:32:25.514+0100 I NETWORK [thread1] recv(): message len 1347703880 is invalid. Min 16 Max: 48000000
2019-05-15T11:32:25.514+0100 E QUERY [thread1] Error: network error while attempting to run command 'isMaster' on host 'mongodb.my.domain:80' :
connect@src/mongo/shell/mongo.js:240:13
@(connect):1:6
exception: connect failed
最佳答案
这里的问题是外部 OpenShift 路由不擅长处理数据库连接。当您尝试通过路由连接到 Mongo pod 时,路由将接受连接并将您的连接传输到 Mongo 服务。我相信这种传输将连接包装在 HTTP 包装器中,Mongo 不喜欢处理这种包装器。 OKD documentation强调基于路径的路由流量应该是基于 HTTP 的,这将导致连接失败。
当您尝试连接到 MongoDB 数据库时,您可以看到这方面的证据,它会返回“看起来您正尝试在 native 驱动程序端口上通过 HTTP 访问 MongoDB”。到浏览器。用户relief.malone 对此进行了解释,并在their answer to this question 中提出了一些解决方案/变通方法。 .
为了添加到relief.malone 的答案中,我建议您从MongoDB pod 转发到您的本地机器进行开发/调试。在生产中,您可以将应用程序部署到 OKD,该应用程序通过其内部 DNS 名称引用 MongoDB 服务,如下所示:mongodb.project_namespace.svc:27017
.这样,您将避免路由干扰连接。
关于端口转发的 Openshift OKD 文档 isn't that informative , 但是,因为 oc
运行 kubectl
引擎盖下的命令,您可以阅读 this Kubernetes guide获取更多信息
关于mongodb - 为什么在尝试连接到运行简单 mongo 容器的 OKD pod 时出现 "message len 1347703880 is invalid. Min 16 Max: 48000000"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56147657/
我在 mongo 中有一个查询,看起来像 db.Table_Name.group({ "key": { "Camp": true }, "initial": { "Clicks": 0 }
这是一个示例查询: db.readings.find( {"_id.s": ISODate("2012-11-01T00:05:00Z") }).count() 查询在 mongo shell 中工作
我正在使用 mongo 模板查询基于状态和邮政编码的文档,这是使用以下标准和查询方法实现的: List modelClass = null; Criteria criteria = new Crite
目前,我有一个旧版本的 mongo,即 2.6 在我的系统上运行。我的网站已经投入生产,并且拥有大量客户数据。我正在计划升级到 mongo 3.2。 所以,我的问题是 mongo v3.2 的 mon
我构建了一个 MongoDB。我想通过某些分组进行聚合。我找到了 document ,这将为我做到这一点。一切正常,但确定limitations指出: 管道的输出只能包含 16 兆字节。如果你的结果s
我无法连接到 MongoDB .在 Ubuntu 中它可以工作,但我在 CentOS 工作现在。这是错误信息: MongoDB shell version: 2.4.2 connecting to:
我试图使用mongo运行最简单的mongo-express和docker-compose容器。我遇到了许多错误,这些错误将在以后解释。 我尝试了以下docker-compose配置: 1。 versi
我有一个 mongo 查询,如下所示。 db.Course.find( { $and: [{courseCallNo: {$in : [/^ssoapicall1$/i]} }, {clientId
我想知道为什么我会收到以下 php 通知: ( ! ) Notice: Mongo::__construct(): parsing servers in C:\htdocs\multishop\lib
(问题灵感来自this one) 给定一个数据集: db.mycollection.insert([ {a:1, b:2, c:3}, {a:1, b:3, c:4}, {a:0, b:1
如果我已经使用 PECL 成功安装了 mongoDB,还需要获取 debian 软件包“php5-mongo”吗?有什么不同?(这个问题应该迁移吗?) 最佳答案 区别与从 CPAN 或 debian(
Mongo 一天前还运行良好。然后今天早上我起床并尝试打开我得到这个: MongoDB shell version: 2.6.4 2015-01-06T11:10:54.142-0500 SE
我正在尝试使用 C# Mongo 驱动程序将文件上传到 Mongo Atlas。但我不明白如何连接类 MongoServerSettings。我试过这个: private static MongoSe
我有两个版本的 mongodb,2.4.3 和 2.6.0。我可以在不同的端口上启动这两个版本,但是在使用 ./mongos 运行它时出现错误: BadValue error: no args for
我需要在 不 关闭的情况下进行分片,或者在端口 27017 中重启现有的 mongo 实例。 我尝试了以下操作,(当默认端口正在运行和 mongo 实例时) mongod --shardsvr --d
在无意中升级了 mongodb 包(3.4.9 -> 3.6.1)后,有没有办法升级 mongo 数据库? 根据 mongo 文档,作为 prerequisite在升级过程中,featureCompa
我正在使用 Sails 0.12.3 和 mongo 3.2.7 这是我的 config/connections.js。 mongo: { adapter: 'sails-mongo', host
我正在使用 mongodb 构建一个基本的搜索引擎,我已经验证了基本查询在 mongo shell 中的工作。不过,我不太明白如何将其翻译成 PHP。 输入字符串中的空格表示“和”运算符和 |或管道字
我有一个用 @Document 注释的 Mongo 集合,我希望能够从字符串 (JSON) 中获取该 Java 对象,因为我们正在将这些类作为字符串插入队列。 Spring-Data-Mongo 中是
我正在使用 Linux Debian 9。我已经安装了 JDK 1.8。我使用的maven版本是3.6,springboot的版本是2.1。 mongodb版本是3.6。 下面是我试图保存在 mong
我是一名优秀的程序员,十分优秀!