2

I am using openshift 3 with mongodb. I am using Spring data with mongodb. But I can not connect to mongodb on Openshift. I am using such code :

MongoCredential credential = MongoCredential.createMongoCRCredential(USER, DB_NAME, PASSWORD.toCharArray());
ServerAddress address = new ServerAddress("localhost", 27017);
List<MongoCredential> list = Collections.singletonList(credential);
return new MongoClient(address, list); 

But I got

>com.mongodb.MongoSocketOpenException: Exception opening socket
    at com.mongodb.connection.SocketStream.open(SocketStream.java:63) ~[mongodb-driver-core-3.4.2.jar!/:na]
    at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:115) ~[mongodb-driver-core-3.4.2.jar!/:na]
    at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:113) ~[mongodb-driver-core-3.4.2.jar!/:na]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131]
Caused by: java.net.ConnectException: Connection refused (Connection refused)
    at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_131]
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_131]
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_131]
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_131]
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_131]
    at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_131]
    at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:57) ~[mongodb-driver-core-3.4.2.jar!/:na]
    at com.mongodb.connection.SocketStream.open(SocketStream.java:58) ~[mongodb-driver-core-3.4.2.jar!/:na]
    ... 3 common frames omitted
János
  • 32,867
  • 38
  • 193
  • 353
Kovalsky Dmitryi
  • 1,420
  • 1
  • 9
  • 12
  • It is unlikely to be 'localhost' you need to connect to. You need to use the name of the mongodb instance service. So if you called it 'mongodb' when you deployed it, connect to 'mongodb' and not 'localhost'. – Graham Dumpleton Jun 01 '17 at 09:30

1 Answers1

0

If you are not running a custom image with a local mongodb, but rather have created a (persistent) mongodb from the application templates, look under 'application' and 'services' for additional details on the hostname and IP.

ThomasRS
  • 8,215
  • 5
  • 33
  • 48