2016-12-16 90 views
0

東西我曾嘗試:通過Android應用程序訪問MongoDB。不工作

InetAddress address = InetAddress.getByName("MyPCName"); 

MongoClientOptions.Builder builder = MongoClientOptions.builder().connectTimeout(3000); 
MongoClient mongo = new MongoClient(new ServerAddress(address.getHostAddress(), 3001), builder.build()); 
     try { 
      mongo.getAddress(); 
     } catch (Exception e) { 
      System.out.println("Mongo is down"); 
      mongo.close(); 
     } 

第二個嘗試:

InetAddress address = InetAddress.getByName("MyPCName"); 
MongoClientURI uri = new MongoClientURI("mongodb://"+address.getHostAddress()+":27017/"+TEST_SKETCH_APP); 

MongoClient instance = MongoDatabaseConnection.getInstance(uri); 
try { 
      instance .getAddress(); 
     } catch (Exception e) { 
      System.out.println("Mongo is down"); 
      instance .close(); 
     } 

防火牆中配置正確:

netsh advfirewall firewall add rule name="Allowing mongod" dir=in action=allow program=" C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe" 

但仍當我嘗試連接到做插入操作的我得到這個錯誤信息:

Timed out after 3000 ms while waiting to connect. Client view of cluster state is {type=Unknown, servers=[{address=192.168.138.1:3001, type=Unknown, state=Connecting}] 

我正在做一個AsyncTask的保存操作。我的mongo數據庫服務器正在「MyPCName」計算機中運行。我的Mongodb配置也綁定ip評論。我也嘗試了綁定IP來保持這個bind_ip = 127.0.0.1,***.***.***.*,0.0.0.0 '*'標記是我得到的IP地址,當我做address.getHostAddress()

我現在卡在這裏。

回答

0

試試這個代碼:

MongoClientURI mongoUri = new MongoClientURI("mongodb://Dbuser:[email protected]:47692"); 
MongoClient mongoClient = new MongoClient(mongoUri); 
DB db = mongoClient.getDB("testdb"); 
Set<String> collectionNames = db.getCollectionNames(); 

此外,你應該檢查這個答案:https://stackoverflow.com/a/21555200/4810206

+0

不想使用mongolab數據庫,希望在本地計算機中擁有一個數據庫,並稍後將其作爲服務器。 – Nagendra555

相關問題