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

开发环境: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

启动出现警告:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值