我遇到了一个奇怪的情况,我有一个Mongo副本集(在3个不同的服务器中有3个副本),我尝试将数据存储库(Spring Data)连接到mongo副本集。我的用户有readWrite和dbAdmin角色,但我仍然无法执行查询。
我在本地计算机上复制了相同的复制集环境,我可以毫无问题地执行操作。
背景如下:
mongodb://myuser:myuserpass@localhost:27017,localhost:27018,localhost:27019/xpto
org.mongodb.driver.cluster - Monitor thread successfully connected to server with description ServerDescription{address=127.0.0.1:27017, type=REPLICA_SET_SECONDARY, state=CONNECTED, ok=true, version=ServerVersion{versionList=[2, 4, 9]}, minWireVersion=0, maxWireVersion=0, maxDocumentSize=16777216, roundTripTimeNanos=876458, (...)
find()
方法调用存储库时,会抛出异常:com.mongodb.MongoQueryException: Query failed with error code 16550 and error message 'not authorized for query ...
当我在本地计算机上使用完全相同的配置安装相同的副本集,但使用mongoDB版本 3.4.1 时,我可以毫无问题地执行此操作。
问题的根源可能是mongoDB版本的差异吗?或者还有其他我在这里缺少的东西吗?
由于