我在运行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
答案 0 :(得分:4)
而不是使用
mongo ds237967.mlab.com:37967/<database> -u <dbuser> -p <dbpassword>
尝试
mongo --port 37967 --host ds237967.mlab.com <database> -u <dbuser> -p <dbpassword>
它应该起作用,因为它对我有用。如果不是,请告诉我
答案 1 :(得分:1)
在编写数据库名称等时,应删除“ <>”字符。
这里是一个例子:
mongo ds237967.mlab.com:37967/databaseName -u dbUser -p dbpassword
答案 2 :(得分:0)
看起来你遇到了这个错误:
https://jira.mongodb.org/browse/SERVER-31437
URL中的主机名和数据库被转置。
如果是这种情况,当前版本的Mongo的解决方法是使用--port和--host参数指定端口和主机名,如hasysf的答案所述。
否则,请考虑升级到修复此版本的版本(v3.4.12或v3.6)。
答案 3 :(得分:0)
您需要替换为默认情况下连接将使用的数据库的名称:
mongo "mongodb+srv://sandbox.5xx8l.mongodb.net/<dbname>" --username <dbuser> --password<dbpassword>
您还可以从代码中删除数据库。下面的代码应该可以正常工作:
mongo ds237967.mlab.com:37967 -u <dbuser> -p <dbpassword>