mongoDB,连接被拒绝

新手上路,请多包涵

显示我的代码

conf.set( "mongo.input.uri" , "mongodb://127.0.0.1/stackoverflow.mrtest" );
conf.set( "mongo.output.uri" , "mongodb://127.0.0.1/stackoverflow.mrtest_out2" );

当主机为 localhost127.0.0.1 时,代码运行无误。但是当主机更改为我的ip wlan0 192.168.1.102 时,它返回了以下错误

Cluster created with settings {hosts=[192.168.1.102:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
Exception in monitor thread while connecting to server 192.168.1.102:27017
com.mongodb.MongoSocketOpenException: Exception opening socket
    at com.mongodb.connection.SocketStream.open(SocketStream.java:63)
    at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:114)
    at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:127)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.ConnectException: connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:50)
    at com.mongodb.connection.SocketStream.open(SocketStream.java:58)
    ... 3 more

我已经打开了端口 27017。

 sudo iptables -A INPUT -ptcp --dport 27017 -j ACCEPT

我的操作系统是 Ubuntu 14.04。

我该如何解决?谢谢!

原文由 GoingMyWay 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 979
2 个回答

默认情况下,MongoDB 只绑定到环回接口,这使得它只能从本地主机访问。要更改它,您需要在 mongod.conf 文件中编辑此行;

 # /etc/mongod.conf

# Listen to local interface only. Comment out to listen on all interfaces.
bind_ip = 127.0.0.1

您可以将其更改为 bind_ip = 127.0.0.1,192.168.1.102 以允许 LAN 和本地连接,或者您可以删除或注释掉该行以允许所有连接。

有关详细信息: MongoDB – 允许远程访问

原文由 Onur 发布,翻译遵循 CC BY-SA 3.0 许可协议

可能有多种原因,简而言之, 您的应用程序无法与 mongoDB 服务通信

1.使用在 application.yml 文件中配置的相同 IP 检查您的 MongoDB,如果不是,则配置 MongoDB 使用的相同 IP:

 spring:
  profiles:
    active: dev
---
  spring:
    profiles: dev
    data:
      mongodb:
        host: localhost
        port: 27017

在这里,我假设我的 mongo 在本地主机和端口 27017 上运行,所以我进行了相应的配置。

  1. 检查你的MongoDB服务是否启动并运行,如何检查?在您的终端中执行以下命令

sudo 服务 mongodb 状态

   <pre><code>
    ● mongodb.service - An object/document-oriented database
   Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2020-07-03 20:10:15 IST; 1min 54s ago
     Docs: man:mongod(1)
 Main PID: 14305 (mongod)
    Tasks: 23 (limit: 4915)
   CGroup: /system.slice/mongodb.service
           └─14305 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf</pre></code>

如果状态不可见为活动和运行,则需要启动/重新启动服务

sudo 服务 mongodb 重新启动

原文由 dinesh kandpal 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题