###配置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
````
- 第一章:Centos快捷操作
- EPEL 存储库
- 第二章:系统命令
- 第三章:Consul搭建配置
- consul-客户端配置win
- 第四章:Mongodb3.20搭建配置
- 1、mongodb-bak
- 第五章:Centos 7搭建Gitlab服务器
- yum-install
- 第六章:Mysql5.6主从搭建
- 第七张:Vmware-exsi6.5
- 第八章:Jumpserver 堡垒机
- 第九章:OCS Inventory NG-CMDB”
- 第十章:zabbix监控部署
- 第十一章:ELK快速搭建
- 第十二章:docker安装
- 第十三章:rabbitmq集群安装
- 第十四章:Nginx相关配置
- 1、Nginx禁止访问某个目录或某个后缀文件
- 2、Nginx-GeoIP部署
- 3、Nginx的lua-nginx-module模块
- 4、lua-resty-redis
- 5、nginx删除不安全的请求头
- 6、Nginx支持HTTPS并且支持反爬虫
- 7、nginx配置location总结及rewrite规则写法
- 7、nginx安装和监控
- 第十五章:racktables资产管理
- 第十六章:缓存服务安装
- memcache
- 第十七章:自动化管理
- ansible-playbook
- ansible-playbook-firewalld
- 第十八章:redis集群部署
- 第十九章:yapi配置ldap
- yapi
- 第二十章:winlogbeat
- win配置winlogbeat
