AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
###配置yum源3.2 或3.4 ```` vi /etc/yum.repos.d/mongodb-org-3.4.repo [mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc ###从阿里源下载 vi /etc/yum.repos.d/mongodb-org-3.2.0.repo [mongodb-org] name=MongoDB Repository baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/3.2/x86_64/ gpgcheck=0 enabled=1 [MongoDB] name=MongoDB Repository baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/ gpgcheck=0 enabled=1 ```` ##wget下载 ```` wget https://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/3.2/x86_64/RPMS/mongodb-org-3.2.2-1.el7.x86_64.rpm wget https://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/3.2/x86_64/RPMS/mongodb-org-tools-3.2.20-1.el7.x86_64.rpm wget https://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/3.2/x86_64/RPMS/mongodb-org-shell-3.2.20-1.el7.x86_64.rpm wget https://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/3.2/x86_64/RPMS/mongodb-org-server-3.2.20-1.el7.x86_64.rpm wget https://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/3.2/x86_64/RPMS/mongodb-org-mongos-3.2.20-1.el7.x86_64.rpm ```` ## 安装 ```` rpm -ivh mongodb-org-3.2.20-1.el7.x86_64.rpm mongodb-org-server-3.2.20-1.el7.x86_64.rpm mongodb-org-tools-3.2.20-1.el7.x86_64.rpm mongodb-org-mongos-3.2.20-1.el7.x86_64.rpm mongodb-org-shell-3.2.20-1.el7.x86_64.rpm ```` ###安装前yum update ```` 安装mongodb yum -y install mongodb-org mongodb-org-server ```` ### 创建文件夹和权限 ``` mkdir -pv /app/mongodb/{logs,data} chown mongod:mongod /app/mongodb/* ``` ###修改配置在vi /etc/mongod.conf ```` systemLog: quiet: false path: /app/mongodb/logs/mongod.log #path: /var/log/mongodb/mongod.log logAppend: false destination: file processManagement: fork: true #pidFilePath: /app/mongodb/logs/mongodb.pid pidFilePath: /var/run/mongodb/mongod.pid net: bindIp: 127.0.0.1 port: 27099 maxIncomingConnections: 65536 wireObjectCheck: true ipv6: false storage: dbPath: /app/mongodb/data indexBuildRetry: true journal: enabled: true directoryPerDB: false engine: mmapv1 syncPeriodSecs: 60 mmapv1: quota: enforced: false maxFilesPerDB: 8 smallFiles: true journal: commitIntervalMs: 100 wiredTiger: engineConfig: cacheSizeGB: 8 journalCompressor: snappy directoryForIndexes: false collectionConfig: blockCompressor: snappy indexConfig: prefixCompression: true operationProfiling: slowOpThresholdMs: 100 mode: off ```` ###mongodb 3.2 用户权限管理配置 ```` 用户权限设置 1、进入mongodb的shell : mongo 2、切换数据库: use admin 从3.0 版本起,默认只有 local 库,没有admin 库,需要我们自己来创建。 3、添加用户,指定用户的角色和数据库: ```` db.createUser( { user: "admin", customData:{description:"superuser"}, pwd: "admin", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } ) ```` user字段,为新用户的名字; pwd字段,用户的密码; cusomData字段,为任意内容,例如可以为用户全名介绍; roles字段,指定用户的角色,可以用一个空数组给新用户设定空角色。在roles字段,可以指定内置角色和用户定义的角色。 ```` ```` 4、查看创建的用户 : show users 或 db.system.users.find() 5、启用用户权限: 修改配置文件,增加配置: security: authorization: enabled 重新启动mongodb ```` ```` 6、用户验证使用: 启用用户验证后,再次登录mongo shell ,执行 show dbs 等命令会提示“没有权限”。此时,需要用户验证登录。 db.auth("admin","admin") ```` ``` ###创建普通用户 use foo; db.createUser({user: 'foo', pwd: 'bar', roles: [{role: 'readWrite', db: 'foo'}]}) db.auth('foo', 'bar') ```` ```` 其他 内建的角色 数据库用户角色:read、readWrite; 数据库管理角色:dbAdmin、dbOwner、userAdmin; 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager; 备份恢复角色:backup、restore; 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase 超级用户角色:root // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase) 内部角色:__system ```` ###配置文件示例 ```` #此处为配置文件可配置的内容 #Mongod config file #MongoDB configuration files use the YAML format. #The following example configuration file contains several mongod settings. # ########Example Start######## #systemLog: # destination: file # path: "/var/log/mongodb/mongodb.log" # logAppend: true #storage: # journal: # enabled: true #processManagement: # fork: true #net: # bindIp: 127.0.0.1 # port: 27017 #setParameter: # enableLocalhostAuthBypass: false # ########Example End######## # ########Core Options systemLog: # verbosity: 0 #Default: 0; 1 to 5 increases the verbosity level to include Debug messages. # quiet: <boolean> # traceAllException: <boolean> # syslogFacility: user path: "/usr/local/mongodb/log/mongod.log" logAppend: true # logRotate: <string> #rename or reopen destination: file # timeStampFormat: iso8601-local # component: # accessControl: # verbosity: 0 # command: # verbosity: 0 # # COMMENT additional component verbosity settings omitted for brevity # storage: # verbosity: 0 # journal: # verbosity: <int> # write: # verbosity: 0 # # ########ProcessManagement Options processManagement: fork: true pidFilePath: "/usr/local/mongodb/log/mongod.pid" # # #########Net Options net: port: 27017 # bindIp: <string> #Default All interfaces. # maxIncomingConnections: 65536 # wireObjectCheck: true # ipv6: false # unixDomainSocket: # enabled: true # pathPrefix: "/tmp" # filePermissions: 0700 # http: # enabled: false # JSONPEnabled: false # RESTInterfaceEnabled: false # 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: false # FIPSMode: <boolean> # # ########security Options #security: # keyFile: <string> # clusterAuthMode: keyFile # authorization: disable # javascriptEnabled: true ########security.sasl Options # sasl: # hostName: <string> # serviceName: <string> # saslauthdSocketPath: <string> # # #########setParameter Option setParameter: enableLocalhostAuthBypass: false # <parameter1>: <value1> # <parameter2>: <value2> # # #########storage Options storage: dbPath: "/data/db" # indexBuildRetry: true # repairPath: "/data/db/_tmp" # journal: # enabled: true # directoryPerDB: false # syncPeriodSecs: 60 engine: "mmapv1" #Valid options include mmapv1 and wiredTiger. #########storage.mmapv1 Options # mmapv1: # preallocDataFiles: true # nsSize: 16 # quota: # enforced: false # maxFilesPerDB: 8 # smallFiles: false # journal: # debugFlags: <int> # commitIntervalMs: 100 # 100 or 30 #########storage.wiredTiger Options # wiredTiger: # engineConfig: # cacheSizeGB: <number> #Default: the maximum of half of physical RAM or 1 gigabyte # statisticsLogDelaySecs: 0 # journalCompressor: "snappy" # directoryForIndexes: false # collectionConfig: # blockCompressor: "snappy" # indexConfig: # prefixCompression: true # # ##########operationProfiling Options #operationProfiling: # slowOpThresholdMs: 100 # mode: "off" # # ##########replication Options #replication: # oplogSizeMB: <int> # replSetName: <string> # secondaryIndexPrefetch: all # # ##########sharding Options #sharding: # clusterRole: <string> #configsvr or shardsvr # archiveMovedChunks: True # # #########auditLog Options #auditLog: # destination: <string> #syslog/console/file # format: <string> #JSON/BSON # path: <string> # filter: <string> # # #########snmp Options #snmp: # subagent: <boolean> # master: <boolean> # # ########mongos-only Options #replication: # localPingThresholdMs: 15 # #sharding: # autoSplit: true # configDB: <string> # chunkSize: 64 # # ########Windows Service Options #processManagement: # windowsService: # serviceName: <string> # displayName: <string> # description: <string> # serviceUser: <string> # servicePassword: <string> ```` ###修改启动服务 ```` [Unit] Description=High-performance, schema-free document-oriented database After=network.target Documentation=https://docs.mongodb.org/manual [Service] User=mongod Group=mongod Environment="OPTIONS=-f /etc/mongod.conf" ExecStart=/usr/bin/mongod $OPTIONS ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb PermissionsStartOnly=true #PIDFile=/app/mongodb/logs/mongod.pid PIDFile=/var/run/mongodb/mongod.pid Type=forking # file size LimitFSIZE=infinity # cpu time LimitCPU=infinity # virtual memory size LimitAS=infinity # open files LimitNOFILE=64000 # processes/threads LimitNPROC=64000 # locked memory LimitMEMLOCK=infinity # total threads (user+kernel) TasksMax=infinity TasksAccounting=false # Recommended limits for for mongod as specified in # http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings [Install] WantedBy=multi-user.target ```` ###建立链接 ```` ln -s /usr/lib/systemd/system/mongod.service /etc/systemd/system/multi-user.target.wants/ ```` ###重新加载systemctl ```` systemctl daemon-reload ```` ###启动服务 ```` sudo chkconfig mongod on sudo service mongod start sudo service mongod stop sudo service mongod restart netstat -tunpl | grep 27017 ```` ###使用说明 ```` ###连接mongodb mongo 查看数据 show dbs 切换数据库,没有创建 use new 查看collection show collections show tables 查看当前数据库状态 db.stats() 插入数据 db.user.insert({"username":"test1","age":12,"sex":"m"}) 查找数据,查找集合中所有数据 db.user.find() 指定条件查找数据 db.user.find({age: {$gt: 10}}); db.user.find({sex: /m/}); 统计数据 db.user.count() 指定条件统计数据 db.user.count({sex: "m"}); 删除记录 db.user.remove({age: 12}); 删除collection db.user.drop() 复制数据库 db.copyDatabase("new2", "new3", "127.0.0.1"); 删除当前数据库 db.dropDatabase(); 释放空间 db.repairDatabase() 停止mongodb use admin db.shutdownServer() 帮助文件 help db.help() ```` ###备份数据库 ###参照http://blog.51yip.com/nosql/1573.html ```` mongodump -h 127.0.0.1:27017 -o /data/tmp/mongodb/ ```` ###还原数据库 ```` mongorestore -h 127.0.0.1:27017 -d 数据库 /app/mongodb/tmpdata/还原数据库 --drop ```` ###同步数据实例[mongosync](http://dl.nosqldb.org/mongosync) ```` mongosync 用户手册 1.6.0 简介 mongosync 是 mongodb 数据同步工具,目前已支持绝大多 种数据同步。 许可证 According to MongoDB tools licenses. We use apache license right now : http://www.apache.org/licenses/LICENSE-2.0 举例 source: 10.0.4.91:27017 target: 10.0.4.91:27020 全量同步 mongosync -h 10.0.4.91:27017 -u admin -p 123 --to 10.0.4.91:27020 --tu admin --tp 456 增量同步 mongosync -h 10.0.4.91:27017 -u admin -p 123 --to 10.0.4.91:27020 --tu admin --tp 456 --oplog -s 1369406664,1 全量和增量同步,实时同步 mongosync -h 10.0.4.91:27017 -u admin -p 123 --to 10.0.4.91:27020 --tu admin --tp 456 --oplog 按时间段同步 mongosync -h 10.0.4.91:27017 -u admin -p ```` ###卸载mongodb ```` 停止服务 sudo service mongod stop 移除包 sudo yum erase $(rpm -qa | grep mongodb-org) 移除数据和日志文件 sudo rm -r /var/log/mongodb sudo rm -r /var/lib/mongo ```` ###相关说明 ```` processManagement.fork: true 以daemon模式启动mongod net.bindIp: 指定IP,逗号分隔,注释掉的情况下,服务启动在0.0.0.0 systemLog.quiet: true 日志输出使用quiet模式,只输出critical storage.dbPath: 指定数据的存放位置 replication.replSetName: 副本集的名字 security.authorization: enabled 使用认证 security.keyFile: 使用keyFile verbosity: 日志开启debug模式,0-5 operationProfiling.slowOpThresholdMs: slowlog设定,默认100 net.http.RESTInterfaceEnabled: rest接口是否有效 net.maxIncomingConnections: 最大连接数,默认65536,不能超过系统设置,# ulimit -n ````