如何为mongo db启用身份验证并使用Spring Boot进行连接?

时间:2018-04-03 17:53:59

标签: java mongodb spring-boot spring-mongodb

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

我已启动并运行mongo,现在尝试连接到db:

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]

1 个答案:

答案 0 :(得分:1)

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

但上面的输出显示“Connection refused”。 所以要么你的mongodb实际上没有运行,要么你的配置指向错误的服务器。仔细检查主机名(您决定在问题中隐藏),然后登录到mongodb服务器并检查mongod进程是否实际正在运行。然后,您可以继续进行身份验证。