【mongodb】使用API远程连接mongodb时,27017端口连接不上

    xiaoxiao2022-06-24  182

    开发环境:win10

    mongodb所在环境:Centos7

    mongodb版本:mongodb-linux-x86_64-3.6.12


    先看一下连接mongodb的部分代码:

    public class MongodbUtil { private static MongoClient MONGODB_CLIENT; private static String MONGODB_IP; private static Integer MONGODB_PORT; private static String MONGODB_DATABASE_NAME; private static String MONGODB_COLLECTION_NAME; static { MONGODB_IP = ConfigurationManager.getProperty("mongodb.host"); MONGODB_PORT = ConfigurationManager.getInteger("mongodb.port"); MONGODB_DATABASE_NAME = ConfigurationManager.getProperty("mongodb.dataSource.name"); MONGODB_COLLECTION_NAME = ConfigurationManager.getProperty("mongodb.collection.name"); log.info("准备获取mongo连接,host:{},port:{},source:{}", MONGODB_IP, MONGODB_PORT, MONGODB_DATABASE_NAME); MONGODB_CLIENT = new MongoClient(MONGODB_IP, MONGODB_PORT); } public static void main(String[] args) { MongoDatabase database = MONGODB_CLIENT.getDatabase(MONGODB_DATABASE_NAME); log.info("db名字:{}", database.getName()); MongoCollection<Document> year_census = database.getCollection("year_census"); FindIterable<Document> documents = year_census.find(); for (Document document : documents) { System.out.println(document); } } }

    运行报错:

    19/05/22 08:23:57 INFO utils.MongodbUtil: 准备获取mongo连接,host:s201,port:27017,source:portrait 19/05/22 08:23:57 INFO driver.cluster: Cluster created with settings {hosts=[s201:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500} 19/05/22 08:23:57 INFO utils.MongodbUtil: db名字:portrait 19/05/22 08:23:57 INFO driver.cluster: Cluster description not yet available. Waiting for 30000 ms before timing out 19/05/22 08:23:58 INFO driver.cluster: Exception in monitor thread while connecting to server s201:27017 com.mongodb.MongoSocketOpenException: Exception opening socket at com.mongodb.connection.SocketStream.open(SocketStream.java:62) at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:126) at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:114) at java.lang.Thread.run(Thread.java:748) Caused by: java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) 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.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:59) at com.mongodb.connection.SocketStream.open(SocketStream.java:57) ... 3 more Exception in thread "main" com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting to connect. Client view of cluster state is {type=UNKNOWN, servers=[{address=s201:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.ConnectException: Connection refused: connect}}] at com.mongodb.connection.BaseCluster.getDescription(BaseCluster.java:167) at com.mongodb.Mongo.getConnectedClusterDescription(Mongo.java:881) at com.mongodb.Mongo.createClientSession(Mongo.java:873) at com.mongodb.Mongo$3.getClientSession(Mongo.java:862) at com.mongodb.Mongo$3.execute(Mongo.java:819) at com.mongodb.MongoIterableImpl.execute(MongoIterableImpl.java:130) at com.mongodb.MongoIterableImpl.iterator(MongoIterableImpl.java:77) at com.hrong.utils.MongodbUtil.main(MongodbUtil.java:68)

    解决办法:

    1、关闭防火墙:

    systemctl stop firewalld.service

    systemctl disable firewalld.service

    2、因为这个版本的mongodb没有在etc下找到对应的配置文件,所以启动命令改成:

    mongod -dbpath=/usr/local/mongodb/data --bind_ip 0.0.0.0

    指定所有用户都可以连接


    之前的命令为:mongod -dbpath=/usr/local/mongodb/data

    启动出现警告:


    最新回复(0)