【问题标题】:Connecting with port in mongoDB on mongolab在 mongolab 上连接 mongoDB 中的端口
【发布时间】:2016-03-11 00:36:50
【问题描述】:

我正在尝试连接 mLab,但出现此错误:

03-09 21:13:04.966 21557-21576/? E/AndroidRuntime:  Caused by: java.lang.VerifyError: com/mongodb/DBPort$SaslAuthenticator
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime:     at com.mongodb.DBPort.authenticate(DBPort.java:387)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime:     at com.mongodb.DBPort.checkAuth(DBPort.java:402)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime:     at com.mongodb.DBTCPConnector.doOperation(DBTCPConnector.java:209)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime:     at com.mongodb.DBCollectionImpl.sendWriteCommandMessage(DBCollectionImpl.java:508)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime:     at com.mongodb.DBCollectionImpl.writeWithCommandProtocol(DBCollectionImpl.java:458)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime:     at com.mongodb.DBCollectionImpl.insertWithCommandProtocol(DBCollectionImpl.java:418)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime:     at com.mongodb.DBCollectionImpl.insert(DBCollectionImpl.java:188)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime:     at com.mongodb.DBCollectionImpl.insert(DBCollectionImpl.java:167)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime:     at com.mongodb.DBCollection.insert(DBCollection.java:93)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime:     at com.mongodb.DBCollection.insert(DBCollection.java:78)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime:     at com.mongodb.DBCollection.insert(DBCollection.java:120)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime:     at com.example.irakl_000.maps.server_pcg.ServerRequest$StorePostAsyncTask.doInBackground(ServerRequest.java:161)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime:     at com.example.irakl_000.maps.server_pcg.ServerRequest$StorePostAsyncTask.doInBackground(ServerRequest.java:71)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime:     at android.os.AsyncTask$2.call(AsyncTask.java:288)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
03-09 21:13:04.966 21557-21576/? E/AndroidRuntime:     at java.lang.Thread.run(Thread.java:841) 

我按照 mLab 的说明进行操作,但出了点问题。我这是我的代码:

        final BasicDBObject[] seedData = createSeedData();
        MongoClientURI uri  = new MongoClientURI("mongodb://<user>:<<password>@ds041861.mlab.com:port/db");
        MongoClient client = new MongoClient(uri);
        DB db = client.getDB(uri.getDatabase());

        DBCollection songs = db.getCollection("texts");

        songs.insert(seedData);// HERE IS THE ERROR

我正在使用 mongo-java-driver-2.13.0-rc0.jar 驱动程序。

这是一张来自mLab的图片

【问题讨论】:

  • 您向我们展示了这张图片,所以这并不是一个秘密,您是否真的在真实代码中使用mongodb://&lt;user&gt;:&lt;&lt;password&gt;@ds041861.mlab.com:41861/posts 作为连接字符串?另外请告诉我,您实际上还用您的实际用户和密码凭据替换了 &lt;user&gt;&lt;password&gt; 值。
  • xaxa hello blakes,是的,我确实用正确的值替换了值:)。你认为问题在于我使用 java 驱动程序
  • 您是否验证了您能够使用 mongo shell 以及您在 Java 应用程序中使用的相同凭据成功连接到您的 mLab 数据库?

标签: java mongodb android-studio mlab


【解决方案1】:

正如我在您的照片中看到的那样,mLab 使用 mongod 3.0.7。您应该使用 mongo-java-driver-3.x.x。 Here是一个链接

【讨论】:

    猜你喜欢
    • 2013-10-11
    • 1970-01-01
    • 2016-11-23
    • 1970-01-01
    • 2018-01-07
    • 1970-01-01
    • 2014-08-23
    • 2013-07-19
    • 2013-02-09
    相关资源
    最近更新 更多