Java驱动远程连接mongoDB(简明易懂版)

mongodb默认是不能远程连接的,而且在linux安装完你会发现,它的目录极其简单,连个配置文件都没有. 我的mongodb的版本是3.6,目前最新的.https://www.mongodb.com/mongodb-3.6 

百度了一下看是有配置文件: mongodb.conf. 又检查了下目录确实没有.然后只能自己创建了.

在官方文档找了关于配置文件的介绍: https://docs.mongodb.com/manual/reference/configuration-options/ 

文档很长:
Configuration File 
    File Format 
    Use the Configuration File 
Core Options 
    systemLog Options 
    processManagement Options 
    net Options 
    security Options 
    setParameter Option 
    storage Options 
    operationProfiling Options 
    replication Options 
    sharding Options 
    auditLog Options 
    snmp Options 
    Text Search Options 
    mongos-only Options 
    Windows Service Options

我把与远程连接及log文件有关的标红了, 如果只是修改远程连接, 这几个重点看下就可以.

文件格式

配置文件使用 YAML格式, 应该都见过,没见过自行baidu..

一个简单的配置文件:

复制代码
systemLog:
   destination: file
   #mongod或mongos应发送所有诊断日志信息的日志文件的路径,而不是标准输出或主机的syslog.MongoDB在指定的路径上创建日志文件。
   path: "/home/xxx/mongod.log"
   #追加在文件后边
   logAppend: false
storage:
   #数据库文件存放位置
   dbPath:"/home/xxx/db"
processManagement:
   fork: true
net:
   #绑定所有的ip地址:0.0.0.0
   bindIp: 0.0.0.0
   port: 27017
security:
   authorization: disabled
复制代码

path dbPath 换成你自己的路径,其中mongod.log是存放控制台日志的地方.

启动

使用配置文件启动

mongod --config ./mongod.conf​

mongod -f /etc/mongod.conf​

Java程序

一个超级简单的java程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;
import org.bson.Document;
 
public class QuickTour {
    MongoClient mongoClient;
     
    public void connect(){
        mongoClient = new MongoClient("10.80.18.1");
        MongoDatabase database = mongoClient.getDatabase("firstDB");
        MongoCollection<Document> collection = database.getCollection("firstCollection1");
        Document myDoc = collection.find().first();
        System.out.println(myDoc.toJson());
    }
     
    public static void main(String[] args) {
        QuickTour quickTour = new QuickTour();
        quickTour.connect();
    }
}

输出:

一月 22, 2018 8:15:35 下午 com.mongodb.diagnostics.logging.JULLogger log
信息: Cluster created with settings {hosts=[10.80.18.1:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
一月 22, 2018 8:15:36 下午 com.mongodb.diagnostics.logging.JULLogger log
信息: No server chosen by ReadPreferenceServerSelector{readPreference=primary} from cluster description ClusterDescription{type=UNKNOWN, connectionMode=SINGLE, serverDescriptions=[ServerDescription{address=10.80.18.1:27017, type=UNKNOWN, state=CONNECTING}]}. Waiting for 30000 ms before timing out
一月 22, 2018 8:15:36 下午 com.mongodb.diagnostics.logging.JULLogger log
信息: Opened connection [connectionId{localValue:1, serverValue:1}] to 10.80.18.1:27017
一月 22, 2018 8:15:36 下午 com.mongodb.diagnostics.logging.JULLogger log
信息: Monitor thread successfully connected to server with description ServerDescription{address=10.80.18.1:27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionList=[3, 6, 2]}, minWireVersion=0, maxWireVersion=6, maxDocumentSize=16777216, roundTripTimeNanos=758049}
一月 22, 2018 8:15:36 下午 com.mongodb.diagnostics.logging.JULLogger log
信息: Opened connection [connectionId{localValue:2, serverValue:2}] to 10.80.18.1:27017
{ "_id" : { "$oid" : "5a631d80070db90c43a3477d" }, "x" : 1.0 }

 

成功!

转发注明出处: http://www.cnblogs.com/jycboy/p/8331019.html



如果您觉得阅读本文对您有帮助,请点一下�?推荐”按钮,您的“推荐�?将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利�?
posted @   超超boy  阅读(7809)  评论(1编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示