• CentOS7安装MongoDB


    一、服务器说明

    系统环境版本:CentOS Linux release 7.3.1611 (Core)

    MongoDB版本:5.0.11

    二、环境配置

    2.1、停止防火墙

    systemctl status firewalld                 #查看firewall
    systemctl stop firewalld                   #停止firewall
    systemctl disable firewalld                #禁止firewall开机启动
    reboot

    2.2、关闭selinux

    vi /etc/selinux/config
    SELINUX=disabled

    三、下载MongoDB Community Server(社区版)

    3.1、下载地址

    下载地址:https://www.mongodb.com/try/download/community

    3.2、下载步骤

    image

    四、安装

    4.1、上传MongoDB安装包 mongodb-linux-x86_64-rhel70-5.0.11.tgz 到 /usr/local/ 目录下

    image

    4.2、解压安装包

    [root@localhost local]# tar -zxvf mongodb-linux-x86_64-rhel70-5.0.11.tgz

    image

    4.3、重命名解压后的包名称

    [root@localhost local]# mv mongodb-linux-x86_64-rhel70-5.0.11 mongodb

    image

    4.4、创建dbpath和logpath

    [root@localhost mongodb]# mkdir -p /usr/local/mongodb/data /usr/local/mongodb/log /usr/local/mongodb/conf

    image

    4.5、启动mongodb服务

    #进入mongodb目录
    [root@localhost mongodb]#cd /usr/local/mongodb
    #启动mongodb服务
    [root@localhost mongodb]#bin/mongod --port=27017 --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/log/mongodb.log --fork

    image

    #访问mongodb
    [root@localhost mongodb]#bin/mongo

    image

    #查看mongodb数据库
    show dbs

    image

    4.6、启动mongodb服务的参数说明

    --dbpath:指定数据文件存放目录
    --logpath:指定日志文件,注意是指定文件不是目录
    --logappend:使用追加的方式记录日志
    --port:指定端口,默认为27017
    --bind_ip:默认只监听localhost网卡
    --fork:后台启动
    --auth:开启认证模式

    4.7、关闭mongodb服务

    • 方式一:
    #进入mongodb目录
    [root@localhost mongodb]#cd /usr/local/mongodb/bin
    #关闭mongodb服务
    [root@localhost mongodb]# ./mongod --port=27017 --dbpath=/usr/local/mongodb/data --shutdown

    image

    • 方式二、
    use admin            --进入admin库
    db.shutdownServer()   --关闭服务
    exit                 --退出shell即可

    image

    4.8、利用配置文件启动mongodb服务

    • 添加环境变量
    #修改/etc/profile,添加环境变量,方便执行MongoDB命令
    export MONGODB_HOME=/usr/local/mongodb
    PATH=$PATH:$MONGODB_HOME/bin
    #重新加载环境变量
    source /etc/profile
    • 创建并编辑mongo.conf文件
    [root@localhost ~]# cd /usr/local/mongodb/conf/
    [root@localhost conf]# touch mongo.conf
    [root@localhost conf]# vim mongo.conf
    #增加如下内容(注意:一定要yaml格式)
    systemLog:
      destination: file
      path: /usr/local/mongodb/log/mongod.log # log path
      logAppend: true
    storage:
      dbPath: /usr/local/mongodb/data # data directory
      engine: wiredTiger #存储引擎
      journal: #是否启用journal日志
        enabled: true
    net:
     bindIp: 0.0.0.0
     port: 27017 # port
    processManagement:
     fork: true

    4.9、启动mongodb服务

    [root@localhost mongodb]# bin/mongod -f /usr/local/mongodb/conf/mongo.conf

    image

    4.10、访问mongodb

    image

    五、开放对外端口

    systemctl status firewalld  # 查看防火墙状态
    firewall-cmd --zone=public --add-port=27017/tcp --permanent # mongodb默认端口号
    firewall-cmd --reload  # 重新加载防火墙
    
    firewall-cmd --zone=public --query-port=27017/tcp # 查看端口号是否开放成功,输出yes开放成功,no则失败

    六、设置MongoDB开机自启动

    6.1、在/lib/systemd/system/目录下新建mongodb.service文件,内容如下:

    [Unit]
    
    Description=mongodb
    After=network.target remote-fs.target nss-lookup.target
    
    [Service]
    Type=forking
    ExecStart=/usr/local/mongodb/bin/mongod --config  /usr/local/mongodb/conf/mongo.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config  /usr/local/mongodb/conf/mongo.conf
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target

    注:其中 /usr/local/mongodb 需要设置为自己MongoDB的安装目录下。

    *注:conf和service文件中设置路径,注意需要设置为绝对路径。

    6.2、设置权限

    chmod 754 mongodb.service

    6.3、启动关闭服务,设置开机启动

    #开机启动
    systemctl enable mongodb.service
    #启动服务
    systemctl start mongodb.service
    #关闭服务
    systemctl stop mongodb.service

    七、自定义用户

    创建用户,设置账号,密码,权限

    // admin数据库
    > use admin
    switched to db admin
    > db.createUser({ user:"root", pwd:"123456", roles:["root"] })
    Successfully added user: { "user" : "root", "roles" : [ "root" ] }
    
    // 其他数据库
    > use test
    switched to db test
    > db.createUser({ user:"admin", pwd:"123456", roles:["readWrite", "dbAdmin"] })
    Successfully added user: { "user" : "root", "roles" : [ "root" ] }


    八、启用身份验证

    8.1、修改mongodb.conf文件,启用身份验证

    vi /etc/mongod.conf
    
    security:
      authorization: "enabled"   # disable or enabled

    8.2、重启MongoDB

    systemctl restart mongodb

    8.3、用户认证

    > use admin
    switched to db admin
    > db.auth("root", "123456")
    1 // 授权成功
    // 其他常用命令
    db.updateUser(user, writeConcern) # 更新用户
    db.dropUser('test') # 删除用户

    8.4、远程连接

    // 终端连接
    mongo 10.128.218.14:27017/database -u username -p password
    
    // mongoose方式连接
    mongoose.connect('mongodb://username:password@host:port/database?options...', {useNewUrlParser: true});
    
    // 通过客户端连接
    

    image

    九、用户权限角色说明

    规则说明
    root只在admin数据库中可用。超级账号,超级权限
    Read允许用户读取指定数据库
    readWrite允许用户读写指定数据库
    dbAdmin允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
    userAdmin允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
    clusterAdmin只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
    readAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读权限
    readWriteAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读写权限
    userAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
    dbAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
  • 相关阅读:
    Building workspace has encountered a proble
    Eclipse异常关闭,IDE Exception Handler has encountered a problem An internal error has occurred
    jsp中写java代码的方法
    如何在jsp里面写java代码
    jsp中在java里面怎么调文本框里面的值?
    Typescript基本认识
    运行flutter run 报错Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.
    H5+原生webview实现APP的JavascriptBridge的使用
    vue mounted里使用window.onresize报错问题
    关于elmentui 抽屉 el-drawer 的slot插入的内容无法通过ref访问的问题
  • 原文地址:https://www.cnblogs.com/haolb123/p/16612702.html
Copyright © 2020-2023  润新知