zoukankan      html  css  js  c++  java
  • mongoDB启动参数备忘

     
    2019.07更新:
    mongodb的配置文件已经变成yaml格式,之前的老方法不推荐使用。
     
    以下简单翻译转自 https://www.jianshu.com/p/f179ce608391
    systemLog:
       # verbosity: 0  #日志等级,0-5,默认0
       # quiet: false  #限制日志输出,
       # traceAllExceptions: true  #详细错误日志
       # syslogFacility: user #记录到操作系统的日志级别,指定的值必须是操作系统支持的,并且要以--syslog启动
       path: /Users/mhq/projects/db/mongo/logs/log.txt  #日志路径。
       logAppend: false #启动时,日志追加在已有日志文件内还是备份旧日志后,创建新文件记录日志, 默认false
       logRotate: rename #rename/reopen。rename,重命名旧日志文件,创建新文件记录;reopen,重新打开旧日志记录,需logAppend为true
       destination: file #日志输出方式。file/syslog,如果是file,需指定path,默认是输出到标准输出流中
       timeStampFormat: iso8601-local #日志日期格式。ctime/iso8601-utc/iso8601-local, 默认iso8601-local
       # component: #各组件的日志级别
       #    accessControl:
       #       verbosity: <int>
       #    command:
       #       verbosity: <int>
    
    processManagement:
       fork: true #以守护进程运行 默认false
       # pidFilePath: <string> #PID 文件位置
    
    net:
       port: 27017 #监听端口,默认27017
       bindIp: 127.0.0.1 #绑定监听的ip,deb和rpm包里有默认的配置文件(/etc/mongod.conf)里面默认配置为127.0.0.1,若不限制IP,务必确保认证安全,多个Ip用逗号分隔
       maxIncomingConnections: 65536 #最大连接数,可接受的连接数还受限于操作系统配置的最大连接数
       wireObjectCheck: true #校验客户端的请求,防止错误的或无效BSON插入,多层文档嵌套的对象会有轻微性能影响,默认true
       ipv6: false #是否启用ipv6,3.0以上版本始终开启
       unixDomainSocket: #unix socket监听,仅适用于基于unix的系统
          enabled: false #默认true
          pathPrefix: /tmp #路径前缀,默认/temp
          filePermissions: 0700 #文件权限 默认0700
       http: #警告 确保生产环境禁用HTTP status接口、REST API以及JSON API以防止数据暴露和漏洞攻击
          enabled: false #是否启用HTTP接口、启用会增加网络暴露。3.2版本后停止使用HTTP interface
          JSONPEnabled: false #JSONP的HTTP接口
          RESTInterfaceEnabled: false #REST API接口
       # ssl: #估计用不到,所以没有自己看
       #    sslOnNormalPorts: <boolean>  # deprecated since 2.6
       #    mode: <string>
       #    PEMKeyFile: <string>
       #    PEMKeyPassword: <string>
       #    clusterFile: <string>
       #    clusterPassword: <string>
       #    CAFile: <string>
       #    CRLFile: <string>
       #    allowConnectionsWithoutCertificates: <boolean>
       #    allowInvalidCertificates: <boolean>
       #    allowInvalidHostnames: <boolean>
       #    disabledProtocols: <string>
       #    FIPSMode: <boolean>
    
    security:
       authorization: enabled # enabled/disabled #开启客户端认证
       javascriptEnabled:  true #启用或禁用服务器端JavaScript执行
       # keyFile: <string> #密钥路径
       # clusterAuthMode: <string> #集群认证方式
       # enableEncryption: <boolean>
       # encryptionCipherMode: <string>
       # encryptionKeyFile: <string>
       # kmip:
       #    keyIdentifier: <string>
       #    rotateMasterKey: <boolean>
       #    serverName: <string>
       #    port: <string>
       #    clientCertificateFile: <string>
       #    clientCertificatePassword: <string>
       #    serverCAFile: <string>
       # sasl:
       #    hostName: <string>
       #    serviceName: <string>
       #    saslauthdSocketPath: <string>
       
    
    # setParameter: #设置参数
    #    <parameter1>: <value1>
    #    <parameter2>: <value2>
    
    storage:
       dbPath: /Users/mhq/projects/db/mongo/test/ #数据库,默认/data/db,如果使用软件包管理安装的查看/etc/mongod.conf
       indexBuildRetry: true #重启时,重建不完整的索引
       # repairPath: <string>  #--repair操作时的临时工作目录,默认为dbPath下的一个_tmp_repairDatabase_<num>的目录
       journal: 
          enabled: true #启动journal,64位系统默认开启,32位默认关闭
          # commitIntervalMs: <num> #journal操作的最大时间间隔,默认100或30
       directoryPerDB: false #使用单独的目录来存储每个数据库的数据,默认false,如果需要更改,要备份数据,删除掉dbPath下的文件,重建后导入数据
       # syncPeriodSecs: 60 #使用fsync来将数据写入磁盘的延迟时间量,建议使用默认值
       engine: wiredTiger #存储引擎,mmapv1/wiredTiger/inMemory 默认wiredTiger
       # mmapv1:
       #    preallocDataFiles: <boolean>
       #    nsSize: <int>
       #    quota:
       #       enforced: <boolean>
       #       maxFilesPerDB: <int>
       #    smallFiles: <boolean>
       #    journal:
       #       debugFlags: <int>
       #       commitIntervalMs: <num>
       # wiredTiger:
       #    engineConfig:
       #       cacheSizeGB: <number>  #缓存大小
       #       journalCompressor: <string> #数据压缩格式 none/snappy/zlib
       #       directoryForIndexes: <boolean> #将索引和集合存储在单独的子目录下,默认false
       #    collectionConfig:
       #       blockCompressor: <string> #集合数据压缩格式 
       #    indexConfig:
       #       prefixCompression: <boolean> #启用索引的前缀压缩
       # inMemory:
       #    engineConfig:
       #       inMemorySizeGB: <number>
     
    operationProfiling: #性能分析
       slowOpThresholdMs: 100 #认定为查询速度缓慢的时间阈值,超过该时间的查询即为缓慢查询,会被记录到日志中, 默认100
       mode: off #operationProfiling模式 off/slowOp/all 默认off
    
    # replication: #复制集相关
    #    oplogSizeMB: <int>
    #    replSetName: <string>
    #    secondaryIndexPrefetch: <string>
    #    enableMajorityReadConcern: <boolean>
    # sharding: #集群分片相关
    #    clusterRole: <string>
    #    archiveMovedChunks: <boolean>
    
    # auditLog:
    #    destination: <string>
    #    format: <string>
    #    path: <string>
    #    filter: <string>
    
    # snmp:
    #    subagent: <boolean> #当设置为true,SNMP作为代理运行
    #    master: <boolean> #当设置为true,SNMP作为主服务器运行
    
    # basisTech:
    #    rootDirectory: <string>
     
    如:
    systemLog:
      destination: file
      path: "/opt/mongodb-linux-x86_64-4.0.10/logs/mongodb.log"
      logAppend: true
      traceAllExceptions: true
    storage:
      dbPath: "/opt/mongodb-linux-x86_64-4.0.10/data"
      indexBuildRetry: true
      journal:
        enabled: true
    processManagement:
      fork: true
    net:
      bindIp: 0.0.0.0
      port: 27017
    setParameter:
      enableLocalhostAuthBypass: false
    security:
      authorization: enabled

    上面的security: authorization: enabled,刚开始应该置为disable,启动后进admin库设置好超级用户,然后再打开enable重启。

    db.createUser({ user: "admin", pwd: "123456", roles: [{ role: "root", db: "admin" }] })
    或类似
    db.createUser({ user: "root", pwd: "123456", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })

    重启后,每次需要先use admin切换到admin库,然后再db.auth('username','pwd')

    验证通过后,即可use 到其他库,在其他库上创建其他用户。

    mongodb的用户是跟随数据库的,创建库内用户和验证的时候,都先要use 到对应的库。

     
     
     
     
     
     
     
    以下是老的命令行方式,现在已经过时,不推荐使用。请使用上面的yaml格式。
    -------------------------------------------------------------------------------
    本文转载
    Mongodb启动命令mongod参数说明
     
    mongod的主要参数有:
     
     基本配置
     
    --------------------------------------------------------------------------------
     
    --quiet # 安静输出
    --port arg # 指定服务端口号,默认端口27017
    --bind_ip arg # 绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定默认本地所有IP
    --logpath arg # 指定MongoDB日志文件,注意是指定文件不是目录
    --logappend # 使用追加的方式写日志
    --pidfilepath arg # PID File 的完整路径,如果没有设置,则没有PID文件
    --keyFile arg # 集群的私钥的完整路径,只对于Replica Set 架构有效
    --unixSocketPrefix arg # UNIX域套接字替代目录,(默认为 /tmp)
    --fork # 以守护进程的方式运行MongoDB,创建服务器进程
    --auth # 启用验证
    --cpu # 定期显示CPU的CPU利用率和iowait
    --dbpath arg # 指定数据库路径
    --diaglog arg # diaglog选项 0=off 1=W 2=R 3=both 7=W+some reads
    --directoryperdb # 设置每个数据库将被保存在一个单独的目录
    --journal # 启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里
    --journalOptions arg # 启用日志诊断选项
    --ipv6 # 启用IPv6选项
    --jsonp # 允许JSONP形式通过HTTP访问(有安全影响)
    --maxConns arg # 最大同时连接数 默认2000
    --noauth # 不启用验证
    --nohttpinterface # 关闭http接口,默认关闭27018端口访问
    --noprealloc # 禁用数据文件预分配(往往影响性能)
    --noscripting # 禁用脚本引擎
    --notablescan # 不允许表扫描
    --nounixsocket # 禁用Unix套接字监听
    --nssize arg (=16) # 设置信数据库.ns文件大小(MB)
    --objcheck # 在收到客户数据,检查的有效性,
    --profile arg # 档案参数 0=off 1=slow, 2=all
    --quota # 限制每个数据库的文件数,设置默认为8
    --quotaFiles arg # number of files allower per db, requires --quota
    --rest # 开启简单的rest API
    --repair # 修复所有数据库run repair on all dbs
    --repairpath arg # 修复库生成的文件的目录,默认为目录名称dbpath
    --slowms arg (=100) # value of slow for profile and console log
    --smallfiles # 使用较小的默认文件
    --syncdelay arg (=60) # 数据写入磁盘的时间秒数(0=never,不推荐)
    --sysinfo # 打印一些诊断系统信息
    --upgrade # 如果需要升级数据库  * Replicaton 参数
     
    --------------------------------------------------------------------------------
     
    --fastsync # 从一个dbpath里启用从库复制服务,该dbpath的数据库是主库的快照,可用于快速启用同步
    --autoresync # 如果从库与主库同步数据差得多,自动重新同步,
    --oplogSize arg # 设置oplog的大小(MB)  * 主/从参数
     
    --------------------------------------------------------------------------------
     
    --master # 主库模式
    --slave # 从库模式
    --source arg # 从库 端口号
    --only arg # 指定单一的数据库复制
    --slavedelay arg # 设置从库同步主库的延迟时间  * Replica set(副本集)选项:
     
    --------------------------------------------------------------------------------
     
    --replSet arg # 设置副本集名称  * Sharding(分片)选项
     
    --------------------------------------------------------------------------------
    --configsvr # 声明这是一个集群的config服务,默认端口27019,默认目录/data/configdb
    --shardsvr # 声明这是一个集群的分片,默认端口27018
    --noMoveParanoia # 关闭偏执为moveChunk数据保存
    # 上述参数都可以写入 mongod.conf 配置文档里例如:
     
    dbpath = /data/mongodb
    logpath = /data/mongodb/mongodb.log
    logappend = true
    port = 27017
    fork = true
    auth = true
     
     
    e.g:./mongod -shardsvr -replSet shard1 -port 16161 -dbpath /data/mongodb/data/shard1a -oplogSize 100 -logpath /data/mongodb/logs/shard1a.log -logappend -fork -rest
     
  • 相关阅读:
    20145240《网络对抗》逆向及Bof基础实践
    20145239杜文超《网络对抗》- Web安全基础实践
    20145239杜文超《网络对抗》- Web基础
    20145239杜文超《网络对抗》- 网络欺诈技术防范
    20145239杜文超《网络对抗》- 信息搜集与漏洞扫描
    20145239杜文超《网络攻防》- MSF基础应用
    20145239杜文超《网络对抗》- 恶意代码分析
    20145239杜文超《网络对抗》- shellcode注入&Return-to-libc攻击深入
    20145239杜文超《网络对抗》- 免杀原理与实践
    20145239《网络对抗》- 后门原理与实践
  • 原文地址:https://www.cnblogs.com/radio/p/3412952.html
Copyright © 2011-2022 走看看