Centos 7安装MongoDB
Posted 西伯利亚的狼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos 7安装MongoDB相关的知识,希望对你有一定的参考价值。
MongoDB介绍
简介
- MongoDB 是一个基于分布式 文件存储的NoSQL数据库
- 由C++语言编写,运行稳定,性能高
- 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案
- 查看官方网站
MongoDB特点
- 模式自由 :可以把不同结构的文档存储在同一个数据库里
- 面向集合的存储:适合存储 JSON风格文件的形式
- 完整的索引支持:对任何属性可索引
- 复制和高可用性:支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目的是提供冗余及自动故障转移
- 自动分片:支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器
- 丰富的查询:支持丰富的查询表达方式,查询指令使用JSON形式的标记,可轻易查询文档中的内嵌的对象及数组
- 快速就地更新:查询优化器会分析查询表达式,并生成一个高效的查询计划
- 高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)
Packages包说明
MongoDB官方源中包含以下几个依赖包:
mongodb-org: MongoDB元数据包,安装时自动安装下面四个组件包:
1.mongodb-org-server: 包含MongoDB守护进程和相关的配置和初始化脚本。
2.mongodb-org-mongos: 包含mongos的守护进程。
3.mongodb-org-shell: 包含mongo shell。
4.mongodb-org-tools: 包含MongoDB的工具: mongoimport, bsondump, mongodump, mongoexport, mongofiles, mongooplog, mongoperf, mongorestore, mongostat, and mongotop。
安装
1安装
https://www.mongodb.com/download-center/community(官方)
https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el7-4.2/RPMS/(清华)
https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/4.2/x86_64/RPMS/(阿里)
yum -y install https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/4.2/x86_64/RPMS/上面文件名字
安装完之后,是一个服务。 服务名字mongod.service
systemctl enable mongod.service
systemctl start mongod.service
进入mongodb添加用户
进入的方式
mongo mongo ip:端口 mongo -u 账号 -p 密码
mongo -host 192.168.31.102 -port 27017 -u root -p wdq123 -authenticationDatabase admin
进入后创建用户
db.createUser(
{
user: "abc",
pwd: "aaa@bbb",
roles: [ { role: "root", db: "admin" } ]
}
)
确定用户是否创建成功
db.auth("useradmin", "adminpassword") #如果返回1,则表示成功。
exit #退出系统
roles中的role可以是以下
2启用身份验证
#外网访问(默认是127.0.0.1,只能在内网访问) net: port: 27017 bindIp: 0.0.0. #身份验证 security: authorization: enabled
修改mongodb配置(yum文件)
查找mongodb目录
whereis mongod
修改配置文件
vim /etc/mongod.conf
# mongod.conf # for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/ # where to write logging data. systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log # Where and how to store data. storage: dbPath: /var/lib/mongo journal: enabled: true # engine: # wiredTiger: # how the process runs processManagement: fork: true # fork and run in background pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile timeZoneInfo: /usr/share/zoneinfo # network interfaces net: port: 27017 bindIp: 192.168.31.102 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting. --修改为ip
security: authorization: enabled
--这个开启需要密码登录
#operationProfiling: #replication: #sharding: ## Enterprise-Only Options #auditLog: #snmp:
# mongodb.conf # 数据库文件位置 dbpath=/var/lib/mongodb #日志文件的路径 logpath=/var/log/mongodb/mongodb.log # 是否追加方式写入日志,默认True logappend=true # 设置绑定ip bind_ip = 127.0.0.1 # 设置端口 port = 27017 # 是否以守护进程方式运行,默认false fork = true # 启用日志文件,默认启用 journal=true # 启用定期记录CPU利用率和 I/O 等待,默认false #cpu = true # 是否以安全认证方式运行,默认是不认证的非安全方式 #noauth = true #auth = true # 详细记录输出,默认false #verbose = true #用于开发驱动程序时验证客户端请求 #objcheck = true # # 启用数据库配额管理,默认false #quota = true # 设置oplog日志记录等级,默认0 # 0=off (default) # 1=W # 2=R # 3=both # 7=W+some reads #oplog = 0 # 是否打开动态调试项,默认false #nocursors = true # 忽略查询提示,默认false #nohints = true # 禁用http界面,默认为localhost:28017 #nohttpinterface = true # 关闭服务器端脚本,这将极大的限制功能,默认false #noscripting = true # 关闭扫描表,任何查询将会是扫描失败 #notablescan = true # 关闭数据文件预分配 #noprealloc = true # 为新数据库指定.ns文件的大小,单位:MB # nssize = <size> # 用于Mongo监控服务器的Accout token。 #mms-token = <token> # Mongo监控服务器的服务器名称。 #mms-name = <server-name> # Mongo监控服务器的Ping间隔时间,即心跳 #mms-interval = <seconds> # Replication Options # 设置主从复制参数 #slave = true # 设置从节点 #source = master.example.com # 指定从节点的主节点 # Slave only: 指定要复制的单个数据库 #only = master.example.com # or #master = true # 设置主节点 #source = slave.example.com # 设置副本集的名字,所有的实例指定相同的名字属于一个副本集 replSet = name #pairwith = <server:port> # 仲裁服务器地址 #arbiter = <server:port> # 默认为false,用于从实例设置。是否自动重新同步 #autoresync = true # 指定的复制操作日志(OPLOG)的最大大小 #oplogSize = <MB> # 限制复制操作的内存使用 #opIdMem = <bytes> # 设置ssl认证 # Enable SSL on normal ports #sslOnNormalPorts = true # SSL Key file and password #sslPEMKeyFile = /etc/ssl/mongodb.pem #sslPEMKeyPassword = pass
# 普通配置文件 # mongodb.conf dbpath=/var/lib/mongodb logpath=/var/log/mongodb/mongodb.log pidfilepath=/var/log/mongodb/master.pid directoryperdb=true logappend=true bind_ip=127.0.0.1 port=27017 fork=true # 集群配置文件 dbpath=/var/lib/mongodb logpath=/var/log/mongodb/mongodb.log pidfilepath=/var/log/mongodb/master.pid directoryperdb=true logappend=true replSet=name bind_ip=127.0.0.1 port=27017 fork=true noprealloc=true
重启服务
用户权限
每个数据库都要有独立的密码...
use yourdatabase
db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "yourdatabase" }] })
新建读写账户
use yourdatabase
db.createUser({ user: "youruser2", pwd: "yourpassword2", roles: [{ role: "readWrite", db: "yourdatabase" }] })
服务器指令
mongo -h
查看帮助文档
以上是关于Centos 7安装MongoDB的主要内容,如果未能解决你的问题,请参考以下文章