Linux 安装 MongoDB社区版

1.MongoDB简介

MongoDB是一个开源、高性能、无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种。是最
像关系型数据库(MySQL)的非关系型数据库。
它支持的数据结构非常松散,是一种类似于 JSON 的 格式叫BSON,所以它既可以存储比较复杂的数据类型,又相当的灵活。
MongoDB中的记录是一个文档,它是一个由字段和值对(field:value)组成的数据结构。MongoDB文档类似于JSON对象,即一个文档认
为就是一个对象。字段的数据类型是字符型,它的值除了使用基本的一些类型外,还可以包括其他文档、普通数组和文档数组。

2.业务应用场景

传统的关系型数据库(如MySQL),在数据操作的“三高”需求以及应对Web2.0的网站需求面前,显得力不从心。
解释:“三高”需求:
• High performance - 对数据库高并发读写的需求。
• Huge Storage - 对海量数据的高效率存储和访问的需求。
• High Scalability && High Availability- 对数据库的高可扩展性和高可用性的需求。
而MongoDB可应对“三高”需求。
具体的应用场景如:
1)社交场景,使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能。
2)游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、高效率存储和访问。
3)物流场景,使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,一次查询就能将
订单所有的变更读取出来。
4)物联网场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析。
5)视频直播,使用 MongoDB 存储用户信息、点赞互动信息等。
这些应用场景中,数据操作方面的共同特点是:
(1)数据量大
(2)写入操作频繁(读写都很频繁)
(3)价值较低的数据,对事务性要求不高
对于这样的数据,我们更适合使用MongoDB来实现数据的存储。
什么时候选择MongoDB
在架构选型上,除了上述的三个特点外,如果你还犹豫是否要选择它?可以考虑以下的一些问题:
应用不需要事务及复杂 join 支持
新应用,需求会变,数据模型无法确定,想快速迭代开发
应用需要2000-3000以上的读写QPS(更高也可以)
应用需要TB甚至 PB 级别数据存储
应用发展迅速,需要能快速水平扩展
应用要求存储的数据不丢失
应用需要99.999%高可用
应用需要大量的地理位置查询、文本查询
如果上述有1个符合,可以考虑 MongoDB,2个及以上的符合,选择 MongoDB 绝不会后悔。

3.部署环境

虚拟机要外网:

[root@localhost conf]# ping www.baidu.com
PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data.
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=128 time=9.02 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=128 time=8.60 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=3 ttl=128 time=6.93 ms
^C
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 6017ms
rtt min/avg/max/mdev = 6.937/8.187/9.022/0.903 ms

linux版本:

#cat /etc/redhat-release,这种方法只适合Redhat系的Linux
#cat /etc/issue,此命令也适用于所有的Linux发行版
[root@localhost conf]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)

4.Linux 安装 MongoDB社区版

提示:版本的选择:
MongoDB的版本命名规范如:x.y.z;
y为奇数时表示当前版本为开发版,如:1.5.2、4.1.13; y为偶数时表示当前版本为稳定版,如:1.6.3、4.0.10; z是修正版本号,数字越大越好。

4.1第一种安装方式(官方)

4.1.1 配置程序包管理系统(yum)

#使用 root 权限登录 Centos。确保 yum 包更新到最新。

yum -y update

创建一个/etc/yum.repos.d/mongodb-org-3.6.repo文件,以便您可以使用yum以下命令直接安装MongoDB :

[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
4.1.2 下载安装MongoDB包

要安装最新的稳定版MongoDB,请发出以下命令:

sudo yum install -y mongodb-org

或者,要安装特定版本的MongoDB,请分别指定每个组件软件包,并将版本号附加到软件包名称中,如以下示例所示:

sudo yum install -y mongodb-org-3.6.2 mongodb-org-server-3.6.2 mongodb-org-shell-3.6.2 mongodb-org-mongos-3.6.2 mongodb-org-tools-3.6.2

您可以指定任何可用的MongoDB版本。但是yum ,当有新版本可用时,将升级软件包。为防止意外升级,请固定包装。要固定包,exclude请在/etc/yum.conf文件中添加以下指令:

exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools
4.1.3 MongoDB所需目录创建

默认情况下,MongoDB使用mongod用户帐户运行,并使用以下默认目录:

/var/lib/mongo (数据目录)
/var/log/mongodb (日志目录)

sudo mkdir -p /var/lib/mongo 
sudo mkdir -p /var/log/mongodb

默认情况下,MongoDB使用mongod用户帐户运行。创建后,将这些目录的所有者和组设置为mongod:

sudo chown -R mongod:mongod /var/lib/mongo
sudo chown -R mongod:mongod /var/log/mongodb
4.1.4 MongoDB启动
#启动:
sudo systemctl start mongod
#重启:
sudo systemctl restart mongod
#停止:
sudo systemctl stop mongod

4.2第二种安装方式

4.2.1先到官网下载压缩包 mongodb-linux-x86_64-3.6.17.tgz 。

下载地址:https://www.mongodb.com/download-center#community

4.2.2 上传压缩包到Linux中,解压到当前目录:
tar -xvf mongodb-linux-x86_64-3.6.17.tgz
4.2.3 移动解压后的文件夹到指定的目录中:
mv mongodb-linux-x86_64-3.6.17 /usr/local/mongodb
4.2.4 新建几个目录,分别用来存储数据和日志:

创建数据存储目录
创建日志存储目录

mkdir -p /mongodb/single/data/db 
mkdir -p /mongodb/single/log
4.2.5 新建并修改配置文件

安装vim命令:

yum -y install vim-enhanced

新建并修改配置文件:

vim /mongodb/single/mongod.yml
systemLog:
    #MongoDB发送所有日志输出的目标指定为文件
    destination: file
    #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
    path: "/mongodb/single/log/mongod.log"
    #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
    logAppend: true
storage:
    #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。   
    dbPath: "/mongodb/single/data/db"
    journal:
    #启用或禁用持久性日志以确保数据文件保持有效和可恢复。      
        enabled: true
processManagement:
    #启用在后台运行mongos或mongod进程的守护进程模式。   
    fork: true
    #指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PID   
    pidFilePath: "/mongodb/single/log/mongod.pid"
net:
    #服务实例绑定所有IP,有副作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip   
    #bindIpAll: true   
    #服务实例绑定的IP   
    bindIp: localhost,192.168.0.49
    #bindIp   
    #绑定的端口   
    port: 27017
4.2.6 启动
 /usr/local/mongodb/bin/mongod -f /mongodb/single/mongod.yml

启动成功如下:
在这里插入图片描述
本地链接:

/usr/local/mongodb/bin/mongo
#或
/usr/local/mongodb/bin/mongo --host 192.168.0.49  --port 27017
#本地链接可以不带 --host 192.168.0.49  --port 27017

链接成功如下:
在这里插入图片描述
参考官方文档资料地址(MongoDB官网):
https://docs.mongodb.com

4.3 添加用户

命令1:

mongo

命令2:

use admin

命令3:

db.createUser({ user:'root',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});

4.4 设置远程连接

vim /etc/mongod.conf
将 bindIp: 127.0.0.1 改为 bindIp: 0.0.0.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值