【Mongodb专题】之搭建

1. Mongodb简介

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系型数据库当中功能最丰富,且与关系数据库的最为相像的。它支持的数据结构非常松散,是类似JSON的Bson格式,因此可以存储较为复杂的数据类型。

Mongodb最大的特点是它支持的查询语句非常强大,其语法有点类似与面向对象的查询语言,几乎可以实现类似关系行数据库单表查询的绝大部分功能,而且还支持对数据建立索引

2. Mongodb搭建

2.1 下载Mongodb

  1. 安装依赖包

    1
    2
    3
    4
    5
    6
    7
    8
    #Red Hat/CentOS
    sudo yum install libcurl openssl

    #Ubuntu 18.04 LTS ("Bionic")/Debian 10 "Buster"
    sudo apt-get install libcurl4 openssl

    #Ubuntu 16.04 LTS ("Xenial")/Debian 9 "Stretch"
    sudo apt-get install libcurl3 openssl
  2. 查看Linux发行版本

    1
    cat /etc/os-release
  3. 查看系统架构

    1
    uname -m
  4. 下载依赖包

    1
    2
    # 启动时依赖libcryptp.so.1.1包
    yum install -y libcrypto.so.*
  5. 进入Mongodb官网 ,下载指定版本的服务

  6. 上传到服务器指定目录,我这里是/usr/local/,并解压到当前目录

    1
    tar -zxvf mongodb-linux-x86_64-rhel8-8.0.4.tgz
    1
    2
    3
    4
    5
    6
    7
    8
    [root@localhost ~]# tar -zxvf mongodb-linux-x86_64-rhel8-8.0.4.tgz
    mongodb-linux-x86_64-rhel88-8.0.4/LICENSE-Community.txt
    mongodb-linux-x86_64-rhel88-8.0.4/MPL-2
    mongodb-linux-x86_64-rhel88-8.0.4/README
    mongodb-linux-x86_64-rhel88-8.0.4/THIRD-PARTY-NOTICES
    mongodb-linux-x86_64-rhel88-8.0.4/bin/install_compass
    mongodb-linux-x86_64-rhel88-8.0.4/bin/mongod
    mongodb-linux-x86_64-rhel88-8.0.4/bin/mongos
  7. 重命名文件夹

    1
    mv mongodb-linux-x86_64-rhel88-8.0.4 mongodb

2.2 安装Mongodb

  1. 创建数据目录和日志目录

    1
    2
    3
    4
    5
    6
    7
    8
     #新建数据存储目录
    mkdir -p /usr/local/mongodb/data/db

    #新建日志存储目录
    mkdir -p /usr/local/mongodb/logs

    #新建配置文件目录
    mkdir -p /usr/local/mongodb/confs
  2. 新建配置文件

    1
    2
     #新建配置文件
    vim /usr/local/mongodb/confs/mongodb.conf

    输入如下配置文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    #dbpath 数据库路径(数据文件)
    dbpath = /usr/local/mongodb/data/db #数据文件存放目录

    #--logpath 日志文件路径
    logpath = /usr/local/mongodb/logs/mongodb.log #日志文件存放目录

    #--port 启用端口号
    port = 27017 #端口

    #--fork 在后台运行
    fork = true

    #--auth 是否需要验证权限登录(用户名和密码)
    auth = false #【建议练习条件下为false 认证字段】

    #--bind_ip 绑定IP,绑定后只能绑定的IP访问服务
    bind_ip=127.0.0.1

    #--master 指定为主机器
    #--slave 指定为从机器
    #--source 指定主机器的IP地址
    #--pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)
    #--logappend 日志文件末尾添加,即使用追加的方式写日志
    #--journal 启用日志
    #--only 指定只复制哪一个数据库
    #--slavedelay 指从复制检测的时间间隔
    #--syncdelay 数据写入硬盘的时间(秒),0是不等待,直接写入
    #--notablescan 不允许表扫描
    #--maxConns 最大的并发连接数,默认2000
    #--pidfilepath 指定进程文件,不指定则不产生进程文件
  3. 在etc目录下创建mongodb的运行配置文件

    • 方式1:

      1
      ln -s /usr/local/mongodb/confs/mongodb.conf /etc/mongodb.conf
    • 方式2:

      1
      cp /usr/local/mongodb/confs/mongodb.conf /etc/mongodb.conf
  4. 配置环境变量

    确认mongodb的安装目录,我这里是/usr/local/mongodb,将目录加入到系统路径中

    1
    vim /etc/profile

    在文件的最后加入以下语句:

    1
    export PATH=$PATH:/usr/local/mongodb/bin

    配置文件生效

    1
    source/etc/profile
  5. mongodb开机自启动

    1
    vim /usr/lib/systemd/system/mongodb.service

    输入以下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [Unit]
    Description=mongodb
    After=network.target remote-fs.target nss-lookup.target

    [Service]
    Type=forking
    ExecStart=/usr/local/mongodb/bin/mongod --config /etc/mongodb.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/usr/local/mongodb//bin/mongod --config /etc/mongodb.conf
    PrivateTmp=true

    [Install]
    WantedBy=multi-user.target
  6. 配置mongodb.service服务可以使用systemctl系统命令管理

    1
    systemctl enable mongodb.service
  7. 启动mongodb.service

    1
    systemctl start mongodb.service
  8. 查看mongodb.service状态

    1
    systemctl status mongodb.service

2.3 Mongodb Compass GUI工具

  1. 下载compass GUI工具,官网地址

  2. 连接mongodb数据库


2.4 常见问题解决方式

  1. 查看mongodb状态

    1
    sudo systemctl status mongod
  2. 检查端口

    1
    netstat -tuln |grep 27017
  3. 检查配置

    确保mongodb.conf中的bind_ip允许远程连接,以及端口是否正确

  4. 检查防火墙

    1
    2
    sudo firewall-cmd --permanent --zone=public --add-port=27017/tcp
    sudo firewall-cmd --reload