前言

温馨提示

MongoDB版本:mongodb-linux-x86_64-rhel70-6.0.6
Linux系统版本:CentOS Stream 8

优点

Mongodb,非关系型数据库,也是文档数据库,性能优秀。
具有快速、高扩展性、自身的failover机制、json的存储格式的优点

适用场景

游戏场景:
使用Mongodb存储游戏用户信息,用户的装备,机分等直接以内嵌文档的形式存储,方便查询和更新。

物流场景:
使用Mongodb存储订单信息,订单状态在运送过程中会不断更新,以Mongodb内嵌数组的形式存储,一次查找就能把订单所有的变更读取出来。

社交场景:
使用Mongodb存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人,地点等功能。

下载安装包

安装及配置

博主下载的安装包是:mongodb-linux-x86_64-rhel70-6.0.6.tgz

  1. 新建目录
    1
    2
    3
    4
    5
    6
    7
    8
    # 进入 usr 文件夹
    cd /usr

    # 新建 mongodb 文件夹
    mkdir mongodb

    # 进入 mongodb 文件夹
    cd mongodb
  2. 将下载的taz包上传到Linux服务器,并解压到刚创建好的文件夹 /usr/mongodb
    1
    2
    # 解压安装包到该目录下
    tar -xvf mongodb-linux-x86_64-rhel70-6.0.6.tgz -C /usr/mongodb
  3. 进入 /usr/mongodb
    1
    cd /usr/mongodb
  4. 修改名称解压后的文件夹名称 mongodb-6.0.6
    1
    mv mongodb-linux-x86_64-rhel70-6.0.6 mongodb-6.0.6
  5. 进入解压后的文件夹中
    1
    cd mongodb-6.0.6
  6. 新建Mongodb结构
    • 创建 /data/db 文件夹存放数据
      1
      2
      cd /usr/mongodb/mongodb-6.0.6
      mkdir -p data/db
    • 创建 /log 文件夹存放日志
      1
      2
      cd /usr/mongodb/mongodb-6.0.6
      mkdir log
    • 创建 Mongodb.log 文件
      1
      2
      cd log
      touch mongodb.log
  7. 创建 conf 文件夹存放配置文件
    1
    2
    3
    cd /usr/mongodb/mongodb-6.0.6

    mkdir conf
  8. /conf 目录下创建 Mongodb.conf 文件并编辑
    1
    2
    3
    4
    5
    cd /usr/mongodb/mongodb-6.0.6/conf

    touch mongodb.conf

    vi ../conf/mongodb.conf'

    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
    systemLog:
    # MongoDB发送所有日志输出的目标指定为文件
    # The path of the log file to which mongod or mongos should send all diagnostic logging information
    destination: file
    # mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
    path: "/usr/mongodb/mongodb-6.0.6/log/mongodb.log"
    # 当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
    logAppend: true
    storage:
    # mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
    # The directory where the mongod instance stores its data.Default Value is "/data/db".
    dbPath: "/usr/mongodb/mongodb-6.0.6/data/db"
    journal:
    #启用或禁用持久性日志以确保数据文件保持有效和可恢复。
    enabled: true
    processManagement:
    #启用在后台运行mongos或mongod进程的守护进程模式。
    fork: true
    net:
    # 服务实例绑定的IP,默认是localhost(多个ip用逗号分隔)
    bindIp: 0.0.0.0
    # bindIp
    #绑定的端口,默认是27017
    port: 27017
  9. 将mongodb添加添加进path
    1
    vi .bashrc

    i 键进入可编辑模式,添加下面的变量

    1
    export PATH=/usr/mongodb/mongodb-6.0.6/bin:$PATH

    ESC 键退出可编辑模式,输入命令 :wq 保存并退出

    配置完成以后,刷新一下.bashrc文件

    1
    2
    3
    cd 

    source .bashrc

启动服务

进入到 /bin 目录下 启动 Mongodb

1
cd /usr/mongodb/mongodb-6.0.6/bin

以配置文件的形式启动

1
mongod -f ../conf/mongodb.conf

启动成功!! 可以通过Navicat数据库连接工具进行验证【Navicat中输入主机IP端口直接测试】

如果启动的时候报错,请查看最后面的:异常报错 解决方案

关闭服务

  • 方法一:

    客户端登录服务,注意,这里通过localhost登录,如果需要远程登录,必须先登录认证才行。

    1
    2
    3
    4
    mongod --port 27017

    # 关闭服务
    db.shutdownServer()
  • 方法二:
    1
    2
    3
    4
    5
    6
    # 通过进程编号关闭节点
    ps -ef|grep mongod
    kill -2 19886

    # 强制杀死
    pkill -9 mongod

用户密码验证服务

上述安装中并没有设置账号密码,所以默认是没有开启用户验证功能

  1. 使用admin数据库
    1
    use admin
  2. 查看当前所有用户
    1
    db.system.users.find()
  3. 设置用户名与密码
    1
    db.createUser({user:"用户名", pwd:"密码", roles:["root"]})
  4. 开启用户密码验证
    修改mongodb.conf中的配置,修改部分如下
    1
    2
    security:
    authorization: enabled
  5. 重启 Mongodb 服务
  6. Navicat测试
    根据设置的账号密码,配置主机端口验证方式(Password)用户名密码

如何卸载

  1. 在终端命令行中输入以下命令停止服务。
    1
    sudo service mongod stop
  2. 删除软件包。
    1
    sudo yum erase $(rpm -qa | grep mongodb-org)
  3. 将mongodb相关文件删除
    1
    2
    3
    4
    # 通过rm命令删除mongodb相关文件
    sudo rm -r /var/log/mongodb

    sudo rm -r /var/lib/mongo

异常报错

问题1

执行 Mongodb 命令报错:-bash: mongod: command not found

报错原因

没有将可执行文件 添加至 path

解决方案

添加添加进path

1
export PATH=/usr/mongodb/mongodb-6.0.6/bin:$PATH

问题2

启动报错:mongod: error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory

报错原因

可能是没有安装libcrypto.so.10

解决方案

查看 libcrypto.so.10 是否安装

1
2
3
rpm -qa  | grep libcrypto.so

rpm -qa | grep libcrypt

执行完上面命令,没有找到 libcrypto.so.10 ,就执行执行命令
1
dnf install compat-openssl10

然后再次执行Mongodb的启动服务