【问题标题】:Getting an err status 500 connecting reactmongo to mlabs获取错误状态 500 将 reactmongo 连接到 mlabs
【发布时间】:2019-12-18 05:01:26
【问题描述】:

底部的解决方案

我正在尝试通过 mlabs 将我的反应式 spring webflux 项目连接到 mongodb。但是从 api 和文档中我不知道是哪种方法导致了我的问题。我设置了两种方法来使用我的 mlab db,但不知道我应该坚持哪一种。

方法一 > 在应用程序属性中设置我的mlab uri

spring.data.mongodb.uri=mongodb://<fernando>:<password>@ds261277.mlab.com:61277/cont-api?AuthMechanism=SCRAM-SHA-1

我尝试过小写,用 & & & 号代替问号并添加 spring.data.mongodb.database=mycollection

结果:我的代码运行了,但是当我提出任何请求(获取、发布等)时出现错误,添加或删除“?AuthMechanism=SCRAM-SHA-1”不会有所作为

ERROR 2423 --- [ntLoopGroup-2-2] a.w.r.e.AbstractErrorWebExceptionHandler : [eb675923] 500 Server Error for HTTP POST "/content/v1/cont/"


org.springframework.data.mongodb.UncategorizedMongoDbException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='<fernando>', source='cont-api', password=<hidden>, mechanismProperties={}}; nested exception is com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='<fernando>', source='cont-api', password=<hidden>, mechanismProperties={}}

方法 2 > 像这样创建一个 dataConfig,但是当我运行时,我得到一个尝试连接到本地 mongodb 的错误

@Configuration
public class DataConfig {

    private static final String DATABASE_NAME = "hospitals";
    private static final String  DATABA_URL = "mongodb://<fernando>:<password>@ds261277.mlab.com:61277/cont-api";

    MongoClient mongoClient = MongoClients.create(new ConnectionString(DATABA_URL));
    MongoDatabase database = mongoClient.getDatabase(DATABASE_NAME);


//    @Bean
//    public ReactiveMongoDatabaseFactory mongoDatabaseFactory(MongoClient mongoClient){
//        return new SimpleReactiveMongoDatabaseFactory(mongoClient, DATABASE_NAME);
//    }
//
//    @Bean
//    public ReactiveMongoOperations reactiveMongoTemplate(ReactiveMongoDatabaseFactory database){
//        return new ReactiveMongoTemplate(database);
//    }
}

结果:

[localhost:27017] org.mongodb.driver.cluster : Exception in monitor thread while connecting to server localhost:27017

com.mongodb.MongoSocketOpenException: Exception opening socket

任何帮助都会很棒,在此先感谢

更新和解决方案: 所以我放弃了方法二并坚持方法一,我只需要从 mlab uri 中删除尖括号,而不是现在 //fernando:password ...

【问题讨论】:

  • 请写下您的解决方案的答案,以便关闭

标签: spring mongodb spring-boot spring-webflux mlab


【解决方案1】:

所以请注意任何使用 mlab 的人,完全忘记删除尖括号

之前:

spring.data.mongodb.uri=mongodb://<fernando>:<password>@ds261277.mlab.com:61277/cont-api

之后:周围没有用户名和密码

spring.data.mongodb.uri=mongodb://fernando:password@ds261277.mlab.com:61277/cont-api

【讨论】:

    猜你喜欢
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多