• CentOS7安装MongoDB


    一、服务器说明

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

    MongoDB版本:5.0.11

    二、环境配置

    2.1、停止防火墙

    1. systemctl status firewalld #查看firewall
    2. systemctl stop firewalld #停止firewall
    3. systemctl disable firewalld #禁止firewall开机启动
    4. reboot

    2.2、关闭selinux

    1. vi /etc/selinux/config
    2. 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服务

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

    image

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

    image

    1. #查看mongodb数据库
    2. show dbs

    image

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

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

    4.7、关闭mongodb服务

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

    image

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

    image

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

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

    4.9、启动mongodb服务

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

    image

    4.10、访问mongodb

    image

    五、开放对外端口

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

    六、设置MongoDB开机自启动

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

    1. [Unit]
    2. Description=mongodb
    3. After=network.target remote-fs.target nss-lookup.target
    4. [Service]
    5. Type=forking
    6. ExecStart=/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/conf/mongo.conf
    7. ExecReload=/bin/kill -s HUP $MAINPID
    8. ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/conf/mongo.conf
    9. PrivateTmp=true
    10. [Install]
    11. WantedBy=multi-user.target

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

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

    6.2、设置权限

    chmod 754 mongodb.service

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

    1. #开机启动
    2. systemctl enable mongodb.service
    3. #启动服务
    4. systemctl start mongodb.service
    5. #关闭服务
    6. systemctl stop mongodb.service

    七、自定义用户

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

    1. // admin数据库
    2. > use admin
    3. switched to db admin
    4. > db.createUser({ user:"root", pwd:"123456", roles:["root"] })
    5. Successfully added user: { "user" : "root", "roles" : [ "root" ] }
    6. // 其他数据库
    7. > use test
    8. switched to db test
    9. > db.createUser({ user:"admin", pwd:"123456", roles:["readWrite", "dbAdmin"] })
    10. Successfully added user: { "user" : "root", "roles" : [ "root" ] }

    八、启用身份验证

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

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

    7.2、重启MongoDB

    systemctl restart mongodb

    7.3、用户认证

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

    7.4、远程连接

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

    image

    九、用户权限角色说明

    规则说明
    root只在admin数据库中可用。超级账号,超级权限
    Read允许用户读取指定数据库
    readWrite允许用户读写指定数据库
    dbAdmin允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
    userAdmin允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
    clusterAdmin只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
    readAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读权限
    readWriteAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读写权限
    userAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
    dbAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
  • 相关阅读:
    京东云硬钢阿里云:承诺再低10%
    java计算机毕业设计基于安卓Android的智慧消防手机APP(源码+系统+mysql数据库+Lw文档)
    如何确认linux的包管理器是yum还是apt,确认之后安装其他程序的时候就需要注意安装命令
    PTrade和QMT对比那个更好用?
    react——状态管理(redux)——手写redux的模拟状态管理——订阅和取消
    计算机毕业设计Java博弈论学习网站(源码+系统+mysql数据库+lw文档)
    js的promise的究竟是同步还是异步的问题和promise.all可以同时请求多个接口是错误的回答的原因
    Jenkins学习笔记
    java计算机毕业设计Vue框架校园相约健康运动平台源码+mysql数据库+系统+lw文档+部署
    AD9371 官方例程 NO-OS 主函数 headless 梳理(二)
  • 原文地址:https://blog.csdn.net/qq_30665009/article/details/126467126