通过 java 应用程序连接在 mongolab 中创建的 mongodb
Posted
技术标签:
【中文标题】通过 java 应用程序连接在 mongolab 中创建的 mongodb【英文标题】:connecting a mongodb created in mongolab through a java application 【发布时间】:2013-02-09 17:13:05 【问题描述】:我在 mongolab 中创建了一个 mongodb 实例 它为我提供了一个连接 URI。
mongodb://<dbuser>:<dbpassword>@ds041177.mongolab.com:41177/myclouddb
我使用以下 java 代码连接到我的数据库-
Mongo m = new Mongo();
com.mongodb.DBAddress dba=new DBAddress("mongodb://admin:password@ds041177.mongolab.com:41177/myclouddb");
m.connect(dba);
但这会引发 NumberFormatException
java.lang.NumberFormatException: For input string: ""
我做错了什么?
【问题讨论】:
【参考方案1】:这是一个 MongoDB URI。
与其将其传递给DBAddress
,不如将其传递给MongoURI
,然后将其传递给Mongo
实例。
String textUri = "mongodb://admin:password@ds041177.mongolab.com:41177/myclouddb";
MongoURI uri = new MongoURI(textUri);
Mongo m = new Mongo(uri);
您还应该考虑升级到latest 驱动程序并切换到MongoClient
类,因为Mongo
类现已弃用。
String textUri = "mongodb://admin:password@ds041177.mongolab.com:41177/myclouddb";
MongoClientURI uri = new MongoClientURI(textUri);
MongoClient m = new MongoClient(uri);
【讨论】:
有没有可能在 MongoURI 中设置两个具有用户名和密码的主机 您应该能够将主机/端口列表添加为逗号分隔列表:mongodb://admin:password@ds041177.mongolab.com:41177,ds041178.mongolab.com:41177/我的云数据库。我不确定所有驱动程序都支持这种格式,但它在规范中:docs.mongodb.org/manual/reference/connection-string以上是关于通过 java 应用程序连接在 mongolab 中创建的 mongodb的主要内容,如果未能解决你的问题,请参考以下文章
在 Heroku 上的 NodeJS 中,MongoDB 与 MongoLab 的连接超时
Heroku + MongoLab 插件与 Node.js 应用程序的连接错误 - 错误:连接 ECONNREFUSED 127.0.0.1:27017