mongodb - Mongo shell 无法连接到 Azure CosmosDB

标签 mongodb macos azure openssl azure-cosmosdb

我无法在 Mac 下从 MongoDB Shell 连接到 Azure CosmosDB (mongodb api):

mongo --host XXX.documents.azure.com --port 10255 --username XXX --password YYY --ssl

返回以下错误

MongoDB shell version v3.4.10
connecting to: mongodb://XXX.documents.azure.com:10255/
2017-11-23T20:56:57.762+1300 E QUERY    [thread1] Error: socket exception [CLOSED] for 104.210.89.99:10255 :
connect@src/mongo/shell/mongo.js:237:13
@(connect):1:6
exception: connect failed

sw_vers:

ProductName:    Mac OS X
ProductVersion: 10.12.4
BuildVersion:   16E195

mongo --版本

MongoDB shell version v3.4.10
git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9
OpenSSL version: OpenSSL 0.9.8zh 14 Jan 2016
allocator: system
modules: none
build environment:
    distarch: x86_64
    target_arch: x86_64

哪个蒙戈

/usr/local/var/mongodb/bin/mongo

otool -L/usr/local/var/mongodb/bin/mongo

/usr/local/var/mongodb/bin/mongo:
    /usr/lib/libssl.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8)
    /usr/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.60.2)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1349.8.0)
    /System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 57740.60.18)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 307.5.0)

我的理论是 Azure CosmosDB 强制执行 SSL/TLS 1.2,而 OpenSSL 0.9.8 不支持 然而,最新版本的 MongoDB 仍然附带 OpenSSL 0.9.8,所以有一个问题:考虑到我不急于在本地构建 MongoDB,如何使 MondoDB Shell 与 Azure CosmosDB 一起使用?有没有办法强制 MongoDB Shell 使用较新的 OpenSSL 库?

最佳答案

卸载/安装brew并通过brew重新安装mongodb后,我得到了以下MongoDB版本:

mongo --版本

MongoDB shell version v3.4.10
git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9
OpenSSL version: OpenSSL 1.0.2m  2 Nov 2017
allocator: system
modules: none
build environment:
    distarch: x86_64
    target_arch: x86_64

它可以很好地连接到 CosmosDB。

关于mongodb - Mongo shell 无法连接到 Azure CosmosDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47450559/

相关文章:

javascript - Socket.IO 适配器在 MongoDB 断开连接时抛出无法捕获的超时错误

macos - 安装 Torch7。 iPython 安装错误 (mac)

azure - 将应用程序部署到 Azure

android - 如何将 Azure 通知中心迁移到 Firebase 云消息传递?

json - 将 Json 文件导入 Mongoose

node.js - 如何在处理单用户帐户和多用户(具有角色的组织帐户)时创建 MongoDB 架构设计

Linux Bash 脚本和 Mongo

java - 如何在 Mac Yosemite 中安装 Java 和 Maven?

ruby - 为特定目录 (RVM) 设置默认的 Ruby 版本

c# - 获取 Azure EventHub 的项目计数