• 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程序

    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

  • 相关阅读:
    git常用命令总结
    sublime text文本中文显示繁体字修改设置
    正则表达式规则玩法
    网址总结
    维度灾难的问题
    Mybatis使用Map当做参数获取插入数据成功后返回的自增id
    Cenos7安装破解jira
    Linux下安装mysql-5.7.28详细步骤
    使用通用mapper时报错,tk.mybatis.mapper.MapperException:无法获取实体类xxx对应的表名!
    Mysql插入数据时,报错this is incompatible with sql_mode=only_full_group_by
  • 原文地址:https://www.cnblogs.com/jycboy/p/8331019.html
Copyright © 2020-2023  润新知