mLab 连接错误:数据库名称不能有 mongodb:// 的保留字符

Posted

技术标签:

【中文标题】mLab 连接错误:数据库名称不能有 mongodb:// 的保留字符【英文标题】:mLab Connect Error: Database name cannot have reserved characters for mongodb:// 【发布时间】:2018-06-11 09:48:28 【问题描述】:

我在运行 mLab 命令以通过 mongo shell 进行连接时遇到 mongoDB 连接错误。使用下面的 mLab 命令在 Windows git bash 终端下运行。我没有使用任何保留字符作为数据库名称,基本上只是一个小写字符串。有什么想法吗?

使用 mongo shell 连接:

mongo ds237967.mlab.com:37967/<database> -u <dbuser> -p <dbpassword>





connecting to: mongodb://<database>:27017/ds237967.mlab.com%3A37967
2018-01-01T00:20:45.371-0800 E QUERY    [thread1] Error: Database name cannot have reserved characters for mongodb:// URL: mongodb://<databasename>:27017/ds237967.mlab.com%3A37967 :
connect@src/mongo/shell/mongo.js:240:13
@(connect):1:6
exception: connect failed

【问题讨论】:

shell 试图连接到mongodb://&lt;database&gt;:27017/ds237967.mlab.com%3A37967 的这个 URL 格式完全错误。您在编辑数据库名称时是否更改了它?应该只是ds237967.mlab.com:37967/&lt;database&gt; 您问题中的错误和命令似乎不匹配。如果您运行这样的命令:mongo &lt;database&gt;:27017/ds237967.mlab.com:37967 -u &lt;dbuser&gt; -p &lt;dbpassword&gt;,就会出现这种错误。您是否以任何方式从 mLab 门户编辑主机名? 我怀疑问题出在格式错误的 URL 上,我根本没有更改它。我运行的唯一命令是“mongo ds237967.mlab.com:37967/ -u -p ”,并且会自动生成格式错误的 URL。 我在 mLab 门户中创建了名为 的数据库,之后没有编辑主机名。我直接从 mLab 门户复制了该命令。 好的...我认为您应该发送电子邮件至 support@mlab.com - 我们可以通过电子邮件帮助您进行更详细的故障排除。 【参考方案1】:

而不是使用

mongo ds237967.mlab.com:37967/<database> -u <dbuser> -p <dbpassword>

试试

mongo --port 37967 --host ds237967.mlab.com <database> -u <dbuser> -p <dbpassword>

它应该对我有用。如果没有请告诉我

【讨论】:

【参考方案2】:

您应该在编写数据库名称等时删除“”字符。

这是一个例子:

mongo ds237967.mlab.com:37967/databaseName -u dbUser -p dbpassword

【讨论】:

【参考方案3】:

看起来你遇到了这个错误:

https://jira.mongodb.org/browse/SERVER-31437

URL 中的主机名和数据库被转置的位置。

如果是这种情况,您当前版本的 Mongo 的解决方法是使用 --port 和 --host 参数指定端口和主机名,如 hasysf 的回答中所述。

否则,请考虑升级到已修复此问题的版本(v3.4.12 或 v3.6)。

【讨论】:

【参考方案4】:

您需要替换为默认连接将使用的数据库的名称:

mongo "mongodb+srv://sandbox.5xx8l.mongodb.net/<dbname>" --username <dbuser> --password<dbpassword>

您还可以从代码中删除数据库。下面的代码应该可以正常工作:

mongo ds237967.mlab.com:37967 -u <dbuser> -p <dbpassword>

【讨论】:

以上是关于mLab 连接错误:数据库名称不能有 mongodb:// 的保留字符的主要内容,如果未能解决你的问题,请参考以下文章

无法从 AWS EC2 实例连接到 Mlab.com 数据库

如何连接谷歌云平台的Mlab?

如何从mlab导出到本地mongoDB

mongodb 启动错误

安装完MongoDB后尝试mongod -dbpath命令为什么会一直卡在连接端口?

适用于mLab Mongodb查询的索引