java - 如何为 mongodb 启用身份验证并与 Spring Boot 连接?

标签 java mongodb spring-boot spring-mongodb

我是 Mongo DB 的新手,我没有找到任何好的资源/示例。我想要实现的是在我的服务器上运行 MongoDB,并打开身份验证。以及我的应用程序的数据库,以及可以访问数据的用户。

我已经启动并运行了 mongo,现在尝试连接到数据库:

spring:
  data:
    mongodb:
      port: 27017
      host: <host name>
      database: test

但我的连接总是被拒绝。

com.mongodb.MongoSocketOpenException: Exception opening socket
    at com.mongodb.connection.SocketStream.open(SocketStream.java:62) ~[mongodb-driver-core-3.6.3.jar:na]
    at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:126) ~[mongodb-driver-core-3.6.3.jar:na]
    at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:114) ~[mongodb-driver-core-3.6.3.jar:na]
    at java.base/java.lang.Thread.run(Thread.java:844) [na:na]
Caused by: java.net.ConnectException: Connection refused (Connection refused)
    at java.base/java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:na]
    at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:400) ~[na:na]
    at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:243) ~[na:na]
    at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:225) ~[na:na]
    at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:402) ~[na:na]
    at java.base/java.net.Socket.connect(Socket.java:591) ~[na:na]
    at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:59) ~[mongodb-driver-core-3.6.3.jar:na]
    at com.mongodb.connection.SocketStream.open(SocketStream.java:57) ~[mongodb-driver-core-3.6.3.jar:na]

最佳答案

Spring 网站上有大量资源,包括入门指南。 MongoDB 文档有关于如何添加用户和启用身份验证的详细说明。 Spring Boot 引用文档描述了如何配置 mongodb 连接,包括凭据。

但是上面的输出显示“连接被拒绝”。 因此,要么您的 mongodb 实际上并未启动并运行,要么您的配置指向错误的服务器。仔细检查主机名(您决定在问题中隐藏该主机名),然后登录到 mongodb 服务器并检查 mongod 进程是否正在实际运行。然后您可以继续进行身份验证。

关于java - 如何为 mongodb 启用身份验证并与 Spring Boot 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49636357/

相关文章:

mysql - 适用于必须每天更新的 900,000 行数据库的最佳云托管数据库解决方案?

java - 使用 Spring 登录 Mongodb

java - Spring寻找我没有使用java.sql.SQLSyntaxErrorException : Table 'meetings.meeting' doesn't exist创建的表

java - 将 JSON 文件解析为 Java 对象

java - 为 AES 生成 key

java - 如何在 JavaFx 中动态更改舞台的高度

java - Mockito:模拟 "Blackbox"依赖项

mongodb - MongoDB 中数组的唯一索引

spring - 如何让spring-boot-starter-data-redis删除返回结果

spring-boot - Pivotal Cloud 问题中的 Spring Boot