mongodb连接超时问题

z47596 2017-01-17 02:12:04
客户端能正常访问mongodb并写入数据,服务器端无法写入(集群),报错如下:(敏感信息已隐去)
Caused by: com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches WritableServerSelector. Client view of cluster state is {type=UNKNOWN, servers=[{address=**.**.**.**:31000, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=null, userName='**', source='**', password=<hidden>, mechanismProperties={}}}, caused by {javax.security.sasl.SaslException: Unable to find PBKDF2WithHmacSHA1. [Caused by java.security.NoSuchAlgorithmException: PBKDF2WithHmacSHA1 SecretKeyFactory not available]}, caused by {java.security.NoSuchAlgorithmException: PBKDF2WithHmacSHA1 SecretKeyFactory not available}}]
at com.mongodb.connection.BaseCluster.createTimeoutException(BaseCluster.java:369)
at com.mongodb.connection.BaseCluster.selectServer(BaseCluster.java:101)
at com.mongodb.binding.ClusterBinding$ClusterBindingConnectionSource.<init>(ClusterBinding.java:75)
at com.mongodb.binding.ClusterBinding$ClusterBindingConnectionSource.<init>(ClusterBinding.java:71)
at com.mongodb.binding.ClusterBinding.getWriteConnectionSource(ClusterBinding.java:68)
at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:219)
at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:168)
at com.mongodb.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:74)
at com.mongodb.Mongo.execute(Mongo.java:781)
at com.mongodb.Mongo$2.execute(Mongo.java:764)
at com.mongodb.MongoCollectionImpl.executeSingleWriteRequest(MongoCollectionImpl.java:515)
at com.mongodb.MongoCollectionImpl.insertOne(MongoCollectionImpl.java:306)
at com.mongodb.MongoCollectionImpl.insertOne(MongoCollectionImpl.java:297)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745),

相同框架的另一程序可以访问并写入(无论是服务器端还是客户端,基础配置没有问题),但这一个就是不行(已尝试过网上解决方法,如:释放链接,更换mongodb-driver)
...全文
4567 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
z47596 2017-01-18
  • 打赏
  • 举报
回复
引用 3 楼 rucypli 的回复:
如果在程序所在服务器用mongo客户端连接集群没问题的话就说明是驱动的问题
已解决问题,链接:http://bbs.csdn.net/topics/392078144?page=1#post-401985318 感谢版主~
rucypli 2017-01-17
  • 打赏
  • 举报
回复
如果在程序所在服务器用mongo客户端连接集群没问题的话就说明是驱动的问题
z47596 2017-01-17
  • 打赏
  • 举报
回复
引用 1 楼 rucypli 的回复:
看着像是授权失败,可能是驱动和monogd的安全机制不匹配
之前相同框架的程序也出现这个问题,后来更改了连接ip就解决了(3台服务器做的集群,用的是外网ip),现在换ip也没有效果(也试过用内网ip,依然无效)
rucypli 2017-01-17
  • 打赏
  • 举报
回复
看着像是授权失败,可能是驱动和monogd的安全机制不匹配

1,747

社区成员

发帖
与我相关
我的任务
社区描述
MongoDB相关内容讨论区
社区管理员
  • MongoDB社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧