热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MongoDB3.x安装配置

目录(见右侧目录栏导航)-1.安装Mongodb-1.1使用二进制包安装-1.2运行MongoDB-2.MongoDB配置文件详解-2.1说明-2.2配置文件格式-2.3配置文件的

目录

见右侧目录栏导航)
- 1. 安装Mongodb
    - 1.1 使用二进制包安装
    - 1.2 运行MongoDB
- 2. MongoDB 配置文件详解
    - 2.1 说明
    - 2.2 配置文件格式
    - 2.3 配置文件的核心选项
        - 2.3.1 systemLog 选项
        - 2.3.2 processMangement 选项
        - 2.3.3 net 选项
        - 2.3.4 storage 选项
        - 2.3.5 replication 选项
- 3. 启动/关闭MongoDB服务
    - 3.1 通过 mongod 命令启动
    - 3.2 通过服务启动

1. 安装Mongodb


官网下载地址:https://www.mongodb.com/download-center/community
官网Centos/RHEL安装教程:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/

1.1 使用二进制包安装


    (1)安装前准备
    OS:CentOS Linux release 7.2
    首先安装依赖:
   

yum install libcurl openssl -y


    (2)下载并解压
    MongoDB下载中心   这里采用 mongodb-linux-x86_64-rhel70-3.6.10.tgz 版本

[root@mongodb src]# tar xf mongodb-linux-x86_64-rhel70-3.6.10.tgz 
[root@mongodb src]# mkdir -pv /mongodb
 mkdir: created directory ‘/mongodb’
[root@mongodb src]# cp -a mongodb-linux-x86_64-rhel70-3.6.10/bin/ /mongodb/


    
    (3)添加MongoDB执行文件到环境变量PATH中

[root@mongodb src]# echo "export PATH=$PATH:/mongodb/bin" >> /etc/profile.d/mongodb.sh
[root@mongodb src]# . /etc/profile.d/mongodb.sh

1.2 运行MongoDB


    (1)前提
    设置系统 ulimit

[root@mongodb src]# egrep -v "^#|^$" /etc/security/limits.conf
*       soft    nproc       655350
*       hard    nproc       655350
*       soft    nfile       655350
*       soft    nfile       655350
[root@mongodb src]# ulimit -SHn 655350


    
    (2)目录
    使用默认目录
    默认,MongoDB使用mongod用户和使用默认的目录
     /var/lib/mongo    数据目录
    /var/log/mongodb    日志目录
    
    这里我们不使用默认的目录,采取自行指定目录
    
    创建MongoDB 使用目录
   

[root@mongodb ~]# mkdir -p /mongodb/{bin,data,etc,log,run}


   

2. MongoDB 配置文件详解

2.1 说明


    配置mongodb有两种方式:


    (1)通过mongod和mongos两个命令;
    (2)通过配置文件的方式(推荐使用)

2.2 配置文件格式


    mongodb 配置文件采用的 YAML格式;
    
    例如:

systemLog:
   destination: file
   path: "/var/log/mongodb/mongod.log"
   logAppend: true
storage:
   journal:
      enabled: true
processManagement:
   fork: true
net:
   bindIp: 127.0.0.1
   port: 27017
setParameter:
   enableLocalhostAuthBypass: false


   

2.3 配置文件的核心选项


2.3.1 systemLog 选项

systemLog:
   verbosity: <int>
   quiet: 
   traceAllExceptions: 
   syslogFacility: <string>
   path: <string>
   logAppend: 
   logRotate: <string>
   destination: <string>
   timeStampFormat: <string>
   component:
      accessControl:
         verbosity: <int>
      command:
         verbosity: <int>


==================重点参数==================
systemLog.destination
    类型:string
    作用:指定日志文件的路径,如果设置了这个值,必须指定systemLog.path.如果没有设置,日志会标准的输出到后台

systemLog.path
    类型:string
    作用:指定日志文件的目录

systemLog.logAppend
    类型:boolean
    默认值:False
    作用:当mongod或mongos重启时,如果为true,将日志追加到原来日志文件内容末尾;如果为false,将创建一个新的日志文件

=========================================

systemLog.timeStampFormat
    类型:string
    默认值:iso8601-local
    作用:为日志添加时间戳。

值     描述
ctime    显示时间戳格式为:Wed Dec 31 18:17:54.811
iso8601-utc    安装iso-8601-utc格式显示:1970-01-01T00:00:00.000Z
iso8601-local    按照iso8601-local格式显示:1969-12-31T19:00:00.000-0500
        
systemLog.traceAllExceptions
    类型:boolean
    作用: 为调试打印详细信息,用于支持相关的故障排除。
    
systemLog.syslogFacility
    类型:string
    默认值:user
    作用:将mongodb使用日志记录到系统日志中,如果要使用这个选项,必须开启--sysylog选项
    
 2.3.2 processMangement 选项

processManagement:
   fork: 
   pidFilePath: <string>


==================重点参数==================
processMangement.fork
    类型:Boolean
    默认值:False
    作用:在前台启动Mongodb进程,如果Session窗口关闭,Mongodb进程也随之停止。不过Mongodb同时还提供了一种后台Daemon方式启动,只需要加上一个"--fork"参数即可,值得注意的是,用到了"--fork"参数就必须启用"--logpath"参数。如下所示:

[root@localhost mongodb]# ./bin/mongod --dbpath=data/db --fork
--fork has to be used with --logpath
[root@localhost mongodb]# ./bin/mongod --dbpath=data/db --fork --logpath=log/mongodb.log 
all output going to: /opt/mongodb/log/mongodb.log
forked process: 3300  


    
=========================================

2.3.3 net 选项

net:
   port: <int>
   bindIp: <string>
   maxIncomingConnections: <int>
   wireObjectCheck: 
   ipv6: 
   unixDomainSocket:
      enabled: 
      pathPrefix: <string>
      filePermissions: <int>
   http:
      enabled: 
      JSONPEnabled: 
      RESTInterfaceEnabled: 
   ssl:
      sslOnNormalPorts:   # deprecated since 2.6
      mode: <string>
      PEMKeyFile: <string>
      PEMKeyPassword: <string>
      clusterFile: <string>
      clusterPassword: <string>
      CAFile: <string>
      CRLFile: <string>
      allowConnectionsWithoutCertificates: 
      allowInvalidCertificates: 
      allowInvalidHostnames: 
      disabledProtocols: <string>
      FIPSMode: 
   compression:
      compressors: <string>


==================重点参数==================
net.port
    类型:integer
    默认值:27017
    作用:设置mongodb的监听TCP端口
    
net.bindIp
    类型:string
    作用:设置mongodb服务器监听ip地址,默认是127.0.0.1;如果监听多个ip地址,使用逗号隔开

=========================================

net.maxIncomingConnections
    类型:integer
    默认值:65536
    作用:最大并发链接数
    
2.3.4 storage 选项

storage:
   dbPath: <string>
   indexBuildRetry: 
   repairPath: <string>
   journal:
      enabled: 
      commitIntervalMs: 
   directoryPerDB: 
   syncPeriodSecs: <int>
   engine: <string>
   mmapv1:
      preallocDataFiles: 
      nsSize: <int>
      quota:
         enforced: 
         maxFilesPerDB: <int>
      smallFiles: 
      journal:
         debugFlags: <int>
         commitIntervalMs: 
   wiredTiger:
      engineConfig:
         cacheSizeGB: 
         journalCompressor: <string>
         directoryForIndexes: 
      collectionConfig:
         blockCompressor: <string>
      indexConfig:
         prefixCompression: 
   inMemory:
      engineConfig:
         inMemorySizeGB: 



==================重点参数==================
storage.dbPath
    类型:string
    默认值:/data/db(linux和macOS系统) ,\data\db(window系统)
    作用:设置数据存储文件目录

storage.journal.enabled
    类型:boolean
    默认值:true(64-bit系统);false(32-bit系统)
    作用:开启和关闭journal,为了保证数据文件的有效性和可恢复性;在设置了dbpath之后有效
    注:在in-memory存储引擎下不可用

========================================

storage.indexBuildRetry
    类型:boolean
    默认值:true
    作用:开启或关闭是否在mongod下次启动重建不完整的索引。
    注:在in-memory存储引擎下不可用
    
storage.repairPath
    类型:string
    默认值:在dbpath下的A _tmp_repairDatabase_ 文件目录
    作用:为进行恢复操作指定目录
    注意:仅仅在MMAPv1存储引擎下可用
    
2.3.5 replication 选项  

replication:
   oplogSizeMB: <int>
   replSetName: <string>
   secondaryIndexPrefetch: <string>
   enableMajorityReadConcern: 



==================重点参数==================
replication.oplogSizeMB
    类型:integer
    作用:设置复制日志文件的大小;
    
replication.replSetName
    类型:string
    作用:副本集的名称
========================================


综上所有的重点参数,常用副本集配置文件如下:


[root@mongodb ~]# vim /mongodb/etc/mongod.conf

技术图片技术图片
systemLog:
 destination: file
###日志存储位置
 path: /mongodb/log/mongod.log
 logAppend: true
storage:
##journal配置
 journal:
  enabled: true
##数据文件存储位置
 dbPath: /mongodb/data/
##是否一个库一个文件夹
 directoryPerDB: true
##数据引擎
 engine: wiredTiger
##WT引擎配置
 wiredTiger:
  engineConfig:
##WT最大使用cache(根据服务器实际情况调节)
   cacheSizeGB: 10
##是否将索引也按数据库名单独存储
   directoryForIndexes: true
##表压缩配置
  collectionConfig:
   blockCompressor: zlib
##索引配置
  indexConfig:
   prefixCompression: true
processManagement:
 fork: true  # fork and run in background
 pidFilePath: /mongodb/run/mongod.pid
##端口配置
net:
 port: 27017
 bindIp: 192.168.118.11

 # 配置副本集重要参数(使用副本集群的时候使用,单节点无需次选项)
replication:
 oplogSizeMB: 20
 replSetName: rs0
mongod.conf



配置文件详解:https://www.cnblogs.com/phpandmysql/p/7763394.html

3. 启动/关闭MongoDB服务


启动、关闭MongoDB的方式有两种:
    (1)通过命令mongod 直接启动
    (2)编写启动脚本,通过脚本启动(推荐使用)

3.1 通过 mongod 命令启动

启动:
[root@mongodb ~]# mongod -f /mongodb/etc/mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 19645
child process started successfully, parent exiting
关闭:
[root@mongodb ~]# mongod -f /mongodb/etc/mongod.conf --shutdown
killing process with pid: 19645

3.2 通过服务启动

(1)创建服务启动用户:

[root@mongodb ~]# groupadd mongodb
[root@mongodb mongodb]# useradd -r -d /mongodb/data -s /sbin/nologin -g mongodb mongodb
[root@mongodb ~]# chown -R mongodb:root /mongodb/



(2)编写服务脚本如下:

[root@mongodb ~]# vim /lib/systemd/system/mongod.service
[Unit]
Description=High-performance, schema-free document-oriented database
After=syslog.target network.target

[Service]
Type=forking
User=mongodb
ExecStart=/mongodb/bin/mongod -f /mongodb/etc/mongod.conf
PrivateTmp=true
LimitNOFILE=64000
TimeoutStartSec=180

[Install]
WantedBy=multi-user.target



(3)启动与关闭

# 启动MongoDB并开机自启
[root@mongodb mongodb]# systemctl enable mongod ; systemctl start mongod
Created symlink from /etc/systemd/system/multi-user.target.wants/mongod.service to /usr/lib/systemd/system/mongod.service.
[root@mongodb mongodb]# netstat -ntplu | egrep mongod
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      2421/mongod

# 关闭MongoDB
[root@mongodb mongodb]# systemctl stop mongod

MongoDB 3.x 安装配置


推荐阅读
  • 一安装配置1.配置文件mongod.cfg(路径:D:\data\config\mongod.cfg)如下:    systemLog:destination ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 本文介绍了解决MySQL数据库Error Code: 1030错误的方法和原因。通过检查文件权限和磁盘空间,注释掉innodb_force_recovery参数等步骤,可以解决无法插入数据和修改文件的问题。 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • 论文阅读及复现 | Improved Semantic Representations From TreeStructured Long ShortTerm Memory Networks
    两种形式的LSTM变体Child-SumTree-LSTMsN-aryTree-LSTMshttps:paperswithcode.compaperimproved-semanti ... [详细]
  • 【SSH网上商城项目实战15】线程、定时器同步首页数据(类似于博客定期更新排名)...
    转自:https:blog.csdn.neteson_15articledetails51387378上一节我们做完了首页UI界面,但是有个问题 ... [详细]
  • 安全3AAuthentication:认证Authorzation:授权Accouting|Audition:审计用户管理用户:UID:0,不一定是root,root的uid非0时 ... [详细]
  • 吴恩达“机器学习”——学习笔记二
    定义一些名词欠拟合(underfitting):数据中的某些成分未被捕获到,比如拟合结果是二次函数,结果才只拟合出了一次函数。过拟合(overfitting):使用过量的特征集合, ... [详细]
  • ARToolKitunity
    ARToolKit为开源的AR库,相对于高通和easyAr有几点特点:1)开源2)识别项目可以动态添加(详细在后)3)识别文件可以本地生成4)目前只能识别图片(目前为.jpg格式) ... [详细]
  • 【实践】基于RTThread的智慧路灯案例实验分享
    之前分享了基于LiteOS的智慧农业案例实验分享基于LiteOS的智慧农业案例实验分享,阅读量挺不错,看样子大家都挺喜欢这种实验。那咱们就再来一个类似的实验:基于RT-Thread ... [详细]
  • UDP协议开发
    UDP是用户数据报协议(UserDatagramProtocol,UDP)的简称,其主要作用是将网络数据流量压缩成数据报形式,提供面向事务的简单信息传送服务。与TCP协议不同,UD ... [详细]
  • 这篇文章将为大家详细讲解有关python爬虫中scrapy怎么处理项目数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • MongoDB用户验证auth的权限设置及角色说明
    本文介绍了MongoDB用户验证auth的权限设置,包括readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase、cluster相关的权限以及root权限等角色的说明和使用方法。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
author-avatar
多米音乐_34396075
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有