【发布时间】:2019-03-20 08:18:13
【问题描述】:
我在多个生产服务器上使用 MongoDB,不同的项目有不同的版本。我的开发环境具有 v3.6 的 shell,但是当我使用 MongoDB v3.4 连接到服务器时,登录时会收到以下消息:
警告:shell 和服务器版本不匹配
将较新的 Mongo shell 与较旧的 DB 版本一起使用是否不安全? MongoDB 是否对此提供了任何官方答案/文档?
【问题讨论】:
标签: mongodb mongo-shell
我在多个生产服务器上使用 MongoDB,不同的项目有不同的版本。我的开发环境具有 v3.6 的 shell,但是当我使用 MongoDB v3.4 连接到服务器时,登录时会收到以下消息:
警告:shell 和服务器版本不匹配
将较新的 Mongo shell 与较旧的 DB 版本一起使用是否不安全? MongoDB 是否对此提供了任何官方答案/文档?
【问题讨论】:
标签: mongodb mongo-shell
将较新的 Mongo shell 与较旧的 DB 版本一起使用是否不安全?
启动警告是关于期望而不是安全:理想情况下,您的 mongo shell 和 MongoDB 部署的主要版本 (x.y) 应该属于同一发行系列的一部分。基本命令通常是向后兼容的(并且会在适当的情况下默认为“旧模式”),但不匹配的 shell 版本肯定会导致意外或令人困惑的结果。
例如,3.6 mongo shell 包括 helpers for new MongoDB 3.6 features 类似会话和可重试写入。如果您连接到较旧的 MongoDB 服务器,对较新功能或选项使用帮助程序可能并不总是会导致明显的错误或警告。
同样,如果您使用 3.4 mongo shell 连接到 MongoDB 3.6 部署,您将缺少用于更新服务器功能的帮助程序。
如果您确信差异不会对您正在使用的命令造成任何问题,您可以选择忽略版本不匹配警告。
如果您经常需要连接到多个 MongoDB 服务器版本(并使用 Linux 或 macOS),m (MongoDB version manager) 非常方便下载和在多个 mongo 版本之间切换。
【讨论】: