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
View Code
技术图片
# 普通配置文件
# 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 
View Code

重启服务

 

用户权限

每个数据库都要有独立的密码...
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的主要内容,如果未能解决你的问题,请参考以下文章

centos 7 yum 安装 MongoDB 4.2

Centos 7.9 安装MongoDB

CentOS 7.x 安装MongoDB

CentOS 7 yum方式快速安装MongoDB

Centos 7.3 安装 Mongodb

centos 7 mongodb4.0 安装配置