我在OpenShift
创建了一个MongoDB
实例。 我可以通过RockMongo
连接到它,这是OpenShift
提供的服务。
我正在尝试使用JAVA
连接到我的实例,但是我只收到Connection refuesed
错误。 而且,我无法使用RoboMongo
连接它。
在我的RockMongo
状态标签中,我看到以下信息:
Host: 127.11.201.2
Port: 27017
如果将RoboMongo
与MongoLab
实例配合使用,可以很好地为其提供正确的凭据,但是在使用OpenShift
它无法连接到该实例。
在我的JAVA
应用中,我正在尝试以下操作:
MongoCredential credential = MongoCredential.createCredential(
Const.MONGO_USERNAME, Cont.MONGO_DB,
Const.MONGO_PASSWORD.toCharArray());
mongo = new MongoClient(new ServerAddress(Const.MONGO_URI), Arrays.asList(credential));
使用127.11.201.2
作为MONGO_URI
。 为什么我无法连接到我的实例? 我究竟做错了什么?
使用putty
PS我只需执行命令mongo
就可以连接到我的mongo
实例。
OpenShift提供了环境变量 ,您应该使用它来连接到MongoDB。
OPENSHIFT_MONGODB_DB_HOST
MongoDB IP地址 OPENSHIFT_MONGODB_DB_PORT
MongoDB端口 OPENSHIFT_MONGODB_DB_USERNAME
MongoDB用户名 OPENSHIFT_MONGODB_DB_PASSWORD
MongoDB密码 OPENSHIFT_MONGODB_DB_URL
MongoDB连接URL(例如mongodb://<username>:<password>@<hostname>:<port>/
) 我使用一行代码连接到数据库:
new MongoClient(new MongoClientURI(System.getenv("OPENSHIFT_MONGODB_DB_URL")));