如何通过OpenShift使用JAVA连接到MongoDB服务器?

问题描述 投票:2回答:1

我在OpenShift创建了一个MongoDB实例。 我可以通过RockMongo连接到它,这是OpenShift提供的服务。

我正在尝试使用JAVA连接到我的实例,但是我只收到Connection refuesed错误。 而且,我无法使用RoboMongo连接它。

在我的RockMongo状态标签中,我看到以下信息:

Host: 127.11.201.2
Port: 27017

如果将RoboMongoMongoLab实例配合使用,可以很好地为其提供正确的凭据,但是在使用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实例。

java mongodb openshift robo3t
1个回答
3
投票

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")));
© www.soinside.com 2019 - 2024. All rights reserved.