Java无法连接MongoDB问题

背景介绍:

       由于开发用的Linux服务器在一个相对封闭的环境中,只有通过SSH访问22端口。于是就用putty做了一个SSH forwarding,将本机的27018端口映射到远程的27017端口。在cmd中通过mongo localhost:27018成功连接,并且进行了操作。


现象:

       在程序中通过

Mongo mongo = new Mongo("localhost", 27018);

连接远程的服务器上的MongoDB,程序运行时出现了下面错误:

Caused by: java.io.IOException: couldn't connect to [3CNL07745/172.28.220.64:27018] bc:java.net.ConnectException: Connection refused: connect
	at com.mongodb.DBPort._open(DBPort.java:206)
	at com.mongodb.DBPort.go(DBPort.java:94)
	at com.mongodb.DBPort.go(DBPort.java:75)
	at com.mongodb.DBPort.call(DBPort.java:65)
	at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:207)
	... 37 more

从异常信息中看出,localhost被替换成了“机器名/IP地址”的形式,而这个组合在cmd 中也是不能连接的。

解决方法:

        其实解决的方法相当的简单:把localhost替换成为127.0.0.1就可以。

时间: 2024-11-02 02:19:42

Java无法连接MongoDB问题的相关文章

java连接mongodb的一个奇葩问题及奇葩解决方式

昨天在eclipse中编写代码,本来连接mongodb进行各项操作都是正常的,但是有一会儿突然之间就没法连接了,还一直抱错,错误如下: 信息: Cluster created with settings {hosts=[192.168.0.4:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500} 十一月 06, 2015 9:23:42

mongodb3.0分片及java代码连接操作测试(开启用户验证)

最近抽时间搭建了一下mongodb简单的分片,整个过程还算是蛮顺利,只不过在用户验证这一块遇到了一些问题,好在最后终于搞定. 一.服务器搭建过程: 1.安装四个mongodb:一个作为config.一个作为mongos.另外两个作为主要数据存储的服务器(机器ip192.168.0.201),如图: 分别对应图中被红框框起来的mongoconf.mongos.mongo1.mongo2(解压安装,安装过程省略). 2.分别建立data.conf.logs文件夹,并在logs文件夹下建立mongod

Android编程连接MongoDB及增删改查等基本操作示例

本文实例讲述了Android编程连接MongoDB及增删改查等基本操作.分享给大家供大家参考,具体如下: MongoDB简介 Mongodb,分布式文档存储数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种.它在许多场景下可用于替代传统的关系型数据库或键/值存储方式.Mongo使用C++开发. Mongo安装参考 1)下载安装包文件,解压到某一文件夹下. 官方下载地址:htt

python实现连接mongodb的方法

  这篇文章主要介绍了python实现连接mongodb的方法,涉及Python使用pymongo模块的基本技巧,需要的朋友可以参考下 通过pymongo可以很容易的链接到mongodb,下面的代码链接到本地mongodb,数据库为mydb,并检索出mycollection中的所有数据输出,简单的几行代码已经做了很多事情 ? 1 2 3 4 5 6 from pymongo import Connection connection = Connection('localhost', 27017)

Java 实现连接sql server 2000(JDBC数据库访问例子)

server|访问|数据|数据库 刘金龙 04041222 ljlsunny@vip.sina.com   第一种:通过ODBC连接数据库 JAVA语言的跨平台的工作能力(Write Once ,Run Anywhere).优秀的图像处理能力(我相信现在没有那种语言可以超过JAVA在网络上的图形处理能力).网络通信功能.通过JDBC数据库访问技术等等,让我们谁都不可否认JAVA语言是SUN公司对于计算机界的一个巨大的贡献.笔者可以描述这样一个场景:有一天你上网完全可以不用IE 或者NETSCAP

PHP连接MongoDB示例

        PHP连接MongoDB示例: <?php //这里采用默认连接本机的27017端口,当然你也可以连接远程主机如192.168.0.4:27017,如果端口是27017,端口可以省略 $m = new Mongo(); // 选择comedy数据库,如果以前没该数据库会自动创建,也可以用$m->selectDB("comedy"); $db = $m->comedy; //选择comedy里面的collection集合,相当于RDBMS里面的表,也-可

java字符串连接String、StringBuffer和StringBuilder

Java字符串连接再开发中随时用的,方法很多: 先看下下边的代码: package com.meiyabaike.classx; public class ClassxMathCalculate { public static void main(String[] args) { int i1 = 10; int i2 = 20; System.out.println("resultx1 :"+i1+i2); //Error: the operator - is undefined f

node js- node.js开发之express4.0使用mongoose连接mongodb表名必须为复数吗

问题描述 node.js开发之express4.0使用mongoose连接mongodb表名必须为复数吗 我之前mongodb数据库已经有表了,但是表名不是复数的(如user),这时我连接的时候它会找(users),有什么办法让它找user吗???? 解决方案 把你的表名加到uncountables就可以了,另外一个办法是告诉mongoose你的表名var schemaObj = new mongoose.Schema({ fields:Schema.Type} { collection: 'c

java oracle 连接使用时出现的问题

问题描述 java oracle 连接使用时出现的问题 假如你不知道数据库的结构,比如有几列,用resultset接收的时候好像只能看有几行,哪 有几列该怎么查询 解决方案 http://www.cnblogs.com/wpcnblog/archive/2011/06/09/2076266.html 解决方案二: http://blog.csdn.net/guobing965816/article/details/7225770 解决方案三: while(resultset.hasNext())