linux + MongoDB 安装 + 部署 + 讲解 (满满干货看完记得收藏噢)

时间:2022-09-18 01:39:21

话不多说开始了!

安装

  安装就依据菜鸟教程的进行安装 传送门 => https://www.runoob.com/mongodb/mongodb-linux-install.html

  好啦!现在你应该已经安装完毕了,你应该也可以在小黑框进行CURD(增删改查)了吧!

  安装是安装好了,这时候你有没有赶脚怪怪的?

  mongodb难道直接输入 mongo 就开始使用?

  难道就没有用户名密码吗?

  答案是当然有了,你在链接mongo的时候有没有发现这一句话 => Server has startup warnings:

linux + MongoDB 安装 + 部署 + 讲解 (满满干货看完记得收藏噢)

  这就是权限的问题 也就是你在开启mongod服务的时候没有开启 auth 的模式

  这时候就要杀死当前的mongod的进程

linux + MongoDB 安装 + 部署 + 讲解 (满满干货看完记得收藏噢)

  如果没有的话就自己编写一个

vim mongodb.conf

dbpath=/www/server/mongodb/data
logpath=/www/server/mongodb/log/mongodb.log
logappend=true
port=27017
fork=true
#auth=true 这个必须在你设置好角色后在进行开启(因为如果你没有直接开启这个而没有用户你会非常尴尬,只能看着而不能进行操作)(初学的话最好设置一个root角色)

也就是先不要开启 然后添加一个use test库设置一个root权限(最nb的权限)
然后kill mongod的进程id 然后取消auth的#注释
然后使用./mongod -f mongodb.conf 重新安装配置文件开启mongod服务

    如果你想了解配置文件各个参数的问题 可以去这里 传送门=>  https://www.cnblogs.com/zhoujinyi/p/3130231.html

  如果你不会设置用户权限可以去这里讲的这两个都很详细 传送门=> https://www.cnblogs.com/henuadtc/p/3814928.html    https://www.cnblogs.com/xiaoqian1993/p/5944039.html

  把上面讲的都操作过了那么基本的mongodb的使用你就了解了。

它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:

  *面向集合存储,易存储对象类型的数据。
  *模式*。
  *支持动态查询
  *支持完全索引,包含内部对象。
  *支持查询。
  *支持复制和故障恢复。
  *使用高效的二进制数据存储,包括大型对象(如视频等)。
  *自动处理碎片,以支持云计算层次的扩展性。
  *支持RUBYPYTHONJAVAC++PHPC#等多种语言。
  *文件存储格式为BSON(一种JSON的扩展)。
  *可通过网络访问。

了解MongoDB

  首先,我来告诉你一些MongoDB与传统的Mysql的区别吧!

  Mysql:

    1.关系型数据库。

    2.在不同的引擎上有不同 的存储方式。

    3.查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。

    4.开源数据库的份额在不断增加,mysql的份额页在持续增长。

    5.缺点就是在海量数据处理的时候效率会显著变慢。

  MongoDB:

    1.非关系型数据库(nosql ),属于文档型数据库。先解释一下文档的数据库,即可以存放xml、json、bson类型系那个的数据。这些数据具备自述性(self-describing),呈现分层的树状数据结构。数据结构由键值(key=>value)对组成。

    2.存储方式:虚拟内存+持久化。

    3.查询语句:是独特的Mongodb的查询方式。

    4.适合场景:事件的记录,内容管理或者博客平台等等。

    5.架构特点:可以通过副本集,以及分片来实现高可用。

    6.数据处理:数据是存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,将数据存储在物理内存中,从而达到高速读写(直接读写内存)。

    7.成熟度与广泛度:新兴数据库,成熟度较低,Nosql数据库中最为接近关系型数据库,比较完善的DB之一,适用人群不断在增长。

    优势:

      1).快速!在适量级的内存的Mongodb的性能是非常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得十分快,

      2).高扩展!

      3).自身的Failover机制!

      4).json的存储格式!

Mysql和MongoDB的应用场景

  • 如果需要将mongodb作为后端db来代替mysql使用,即这里mysql与mongodb 属于平行级别,那么,这样的使用可能有以下几种情况的考量: (1)mongodb所负责部分以文档形式存储,能够有较好的代码亲和性,json格式的直接写入方便。(如日志之类) (2)从data models设计阶段就将原子性考虑于其中,无需事务之类的辅助。开发用如nodejs之类的语言来进行开发,对开发比较方便。 (3)mongodb本身的failover机制,无需使用如MHA之类的方式实现。

  • 将mongodb作为类似redis ,memcache来做缓存db,为mysql提供服务,或是后端日志收集分析。 考虑到mongodb属于nosql型数据库,sql语句与数据结构不如mysql那么亲和 ,也会有很多时候将mongodb做为辅助mysql而使用的类redis memcache 之类的缓存db来使用。 亦或是仅作日志收集分析。