Centos7部署单机版MongoDB

目录

  • Centos7部署单机版MongoDB
    • MongoDB介绍
      • 数据模型
      • 索引
      • 分布式
      • 高可用性
      • 查询语言
      • 驱动和社区
      • 用途
      • 缺点
    • 下载并解压安装包
    • 创建相关文件夹和文件
    • 编辑mongod.conf文件
    • 启动mongodb
    • 创建管理员用户
    • 终止MongoDB服务
    • 配置自启动服务
      • 关闭SELinux
      • 编辑自启动服务文件
      • mongodb服务命令

Centos7部署单机版MongoDB

MongoDB介绍

MongoDB 是一个开源的 NoSQL 数据库,主要用于高性能、高可用性和易扩展性的应用场景。它是由 C++ 编写的,采用文档导向的数据模型,使用 BSON(Binary JSON)格式来存储数据。MongoDB 与传统的关系数据库(如 MySQL、Oracle 等)有几个主要区别:

数据模型

  • 文档导向:MongoDB 使用一个类似 JSON 的数据格式(BSON)来存储数据,而不是表格。这使得它更为灵活,因为文档可以包含不同的字段和结构。

索引

  • 全面的索引支持:MongoDB 支持多种类型的索引,包括地理空间索引,使得复杂查询更加高效。

分布式

  • 水平可扩展性:通过数据分片(Sharding),MongoDB 可以非常容易地水平扩展,以支持非常大的数据集和高吞吐量的应用。

高可用性

  • 复制和故障恢复:MongoDB 支持自动复制和故障转移,提高了数据的可用性。

查询语言

  • 丰富的查询语言:除了基本的 CRUD 操作,MongoDB 支持丰富的查询操作,包括聚合和文本搜索等。

驱动和社区

  • 多语言支持:有许多语言的驱动程序和库,包括 Java, Python, C#, Node.js 等,这让不同背景的开发者都能容易地使用 MongoDB。

  • 活跃的社区和商业支持:因为是一个开源项目,MongoDB 有一个非常活跃的社区,同时也有商业版本和支持。

用途

MongoDB 广泛应用于各种类型的应用,包括物联网、实时分析、移动应用、内容管理和交付、以及许多其他用例。

缺点

  • 事务支持:虽然近年来 MongoDB 已经增加了对多文档 ACID 事务的支持,但这在某些复杂场景下可能不如关系数据库完善。

  • 数据一致性:默认情况下,MongoDB 使用最终一致性模型,这可能不适用于需要强一致性的应用。

  • 存储空间:由于其灵活的文档模型和索引,MongoDB 可能需要更多的存储空间。

总体而言,MongoDB 是一个非常强大和灵活的数据库选择,适用于需要快速开发和扩展的现代应用。这里使用单机版本的进行演示。

下载并解压安装包

下载地址:

社区版:https://www.mongodb.com/try/download/community

企业版:https://www.mongodb.com/try/download/enterprise

下载企业版tgz免安装包

# 创建文件夹
mkdir /home/soft/mongodb
#解压文件
tar -zxvf mongodb-linux-x86_64-enterprise-rhel70-4.4.5.tgz 

Centos7部署单机版MongoDB_第1张图片

创建相关文件夹和文件

# 创建日志文件夹
mkdir -p /home/soft/mongodb/data/log/
# 创建日志文件
touch /home/soft/mongodb/data/log/mongod.log
# 创建数据存储文件夹
mkdir -p /home/soft/mongodb/data/db
# 内存文件夹,重开机后必须重建此文件夹才能成功启动mongodb
mkdir -p /var/run/mongodb/
# 
touch /var/run/mongodb/mongod.pid

编辑mongod.conf文件

vim /home/soft/mongodb/data/etc/mongod.conf
systemLog:
  destination: file
  logAppend: true
  path: /home/soft/mongodb/data/log/mongod.log
  
storage:
  dbPath: /home/soft/mongodb/data/db
  journal:
    enabled: true

processManagement:
  fork: true
  pidFilePath: /var/run/mongodb/mongod.pid
  timeZoneInfo: /usr/share/zoneinfo
 
net:
  port: 27017
  bindIp: 0.0.0.0 
  
security:
  authorization: enabled 

如果不配置security: authorization: enabled,mongodb是不安全的谁都可以访问

启动mongodb

# 进入mongodb文件夹
cd  /home/soft/mongodb/bin
# 手动启动mongodb
./mongod -f /home/soft/mongodb/data/etc/mongod.conf

在启动 mongod的时候遇到error while loading shared libraries: libnetsnmpagent.so.20: cannot open shared object file: No such file or directory

该error 是因为未装net-snmp

直接连接外网的Linux服务器可直接使用:

yum install net-snmp

登录命令

./mongo

Centos7部署单机版MongoDB_第2张图片

创建管理员用户

# 登录mongodb
./mongo --port 27017

# 切换到admin库
use admin

# 创建超级用户,用root权限可以管理整个集群
db.createUser({"user":"admin",pwd:"admin",roles:["root"]})

终止MongoDB服务

  • 方法一:登录后在MongoDB shell下执行终止指令
# 切换至admin数据库
use admin
# 关闭服务
db.shutdownServer()
  • 方法二:在操作系统下终止服务
ps awx|grep mongod

kill pid

配置自启动服务

关闭SELinux

# 检查SELinux是否开启
/usr/sbin/sestatus -v

# 编辑文件
vim /etc/selinux/config

# 设置配置
SELINUX=disabled

重启机器

reboot

编辑自启动服务文件

vim /usr/lib/systemd/system/mongod.service
[Unit]  
Description=mongodb  
After=network.target remote-fs.target nss-lookup.target  
  
[Service]  
Type=forking  
RuntimeDirectory=mongodb
RuntimeDirectoryMode=0751
PIDFile=/var/run/mongodb/mongod.pid
ExecStart=/home/soft/mongodb/bin/mongod --config /home/soft/mongodb/data/etc/mongod.conf
ExecStop=/home/soft/mongodb/bin/mongod --shutdown --config /home/soft/mongodb/data/etc/mongod.conf  
PrivateTmp=false  
  
[Install]  
WantedBy=multi-user.target

mongodb服务命令

#查询服务状态
systemctl status mongod.service

# 启动自启动服务
systemctl enable mongod.service

# 开启服务
systemctl start mongod.service

# 停止服务
systemctl stop mongod.service

# 关闭自启动服务
systemctl disable mongod.service

查询服务状态,看到如下内容便是启动完成了

Centos7部署单机版MongoDB_第3张图片

你可能感兴趣的:(#,mongodb,mongodb,数据库,centos)