Linux安装MongoDB

MongoDB安装-----[Linux]

1. 准备环境

  1. 一台linux

2. 安装

  1. 配置仓库文件

    vim /etc/yum.repos.d/mongodb-org-3.4.repo
    

    下面全部复制进去

    [mongodb-org-3.4]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
    

    esc + :wq! 保存退出

  2. yum命令安装

    yum install -y mongodb-org
    
  3. 启动mongoDB

    systemctl start mongod
    
  4. 可以通过命令查看mongoDB是否真的已启动

    mongo
    
  5. 进入mongo命令行后查看数据库

    show dbs;
    

    [外链图片转存失败(img-w3TPrY5N-1568280271440)(C:\Users\87781\Desktop\pic\1.png)]

    mongoDB默认端口为27017

  6. 开放27017端口

    firewall-cmd --add-port=27017/tcp --permanent
    
  7. 重载入添加的端口

    firewall-cmd --reload
    
  8. 查看是否开启成功

    firewall-cmd --query-port=27017/tcp
    
  9. 找到mongoDB的配置文件

    whereis mongod
    

    [外链图片转存失败(img-hJedWfy7-1568280271441)(C:\Users\87781\Desktop\pic\2.png)]

  10. 查看配置

    vim /etc/mongod.conf
    

    把bindIp: 127.0.0.1用#注释掉, 否则外网无法访问[外链图片转存失败(img-2byac9ku-1568280271442)(C:\Users\87781\Desktop\pic\3.png)]

  11. 重启mongodb

    systemctl restart mongod
    
  12. 用mongoDB连接工具测试连接

    [外链图片转存失败(img-BWXMKKB2-1568280271442)(C:\Users\87781\Desktop\pic\4.png)]

    好了现在我们可以从安装这个坑出来了, 进入另一个坑 ↓↓↓↓↓↓↓↓

3. 配置用户角色权限

通过刚才的安装, 数据库是可以使用了, 但是现在是没有任何安全可言的, 只要得知服务器IP及mongoDB的端口即可以管理员身份连接, 因此下面我们要进行用户角色权限配置

  1. 指定admin数据库

    use admin
    
  2. 创建管理员用户

    db.createUser({
        user: "admin",  // 用户名
        pwd: "12345", // 密码
        roles: [
            {
                role: "userAdminAnyDatabase", // 角色
                db: "admin" // 数据库
            }
        ]
    })
    

    角色规则:

    1.数据库用户角色:read、readWrite;
    2.数据库管理角色:dbAdmin、dbOwner、userAdmin;
    3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
    4.备份恢复角色:backup、restore;
    5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    6.超级用户角色:root
    //这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)

  3. 创建数据库(直接用use创建数据库)

    use test
    

    [外链图片转存失败(img-RF1OUDu8-1568280271443)(C:\Users\87781\Desktop\pic\5.png)]

    打印输出switched to db test就是已经指向test数据库了

    [外链图片转存失败(img-4mOk75MS-1568280271444)(C:\Users\87781\Desktop\pic\6.png)]

    但是现在就算刷新了还是没有显示test数据库的, 我们必须先插入一条数据

  4. 插入数据

    db.test.insert({
    	"name": "JC",
    	"age": 16
    })
    

    然后就可以看到我们的数据库和插入到数据库中的数据了

    [外链图片转存失败(img-f91gUeG0-1568280271444)(C:\Users\87781\Desktop\pic\7.png)]

  5. 分配独立数据库用户

    注意: 请先使用use指向预分配用户要使用的数据库, 否则后续该用户登录进入时会提示无存储数据库权限(比如分配test数据库的用户存在admin数据库, 会报错admin数据库权限不够, 不信自己试)

    use test
    
    db.createUser({
        user: "jcjava", // 用户名
        pwd: "12345", // 密码
        roles: [
            {
                role: "readWrite", // 读写权限
                db: "test" // 数据库
            }
        ]
    })
    
  6. 添加到授权中

    db.auth("jcjava","12345")
    

    如果不添加, 该用户登录时会报未授权的错误, 见下图

    [外链图片转存失败(img-opEOq2Qz-1568280271445)(C:\Users\87781\AppData\Roaming\Typora\typora-user-images\1568277135929.png)]

  7. 重启mongoDB并开启认证登录

    **注意: **

    1. 不建议用kill或关闭服务的方式结束mongoDB进程, 否则mongoDB生成进程锁, 会影响下一次启动(当然你想研究就慢慢踩坑自己研究吧)

    2. 此处建议用mongoDB自带函数关闭服务

    db.shutdownServer();
    

    [外链图片转存失败(img-C2eIiqT5-1568280271445)(C:\Users\87781\AppData\Roaming\Typora\typora-user-images\1568275708703.png)]

    这里看到reconnect 127.0.0.1:27017 failed的时候, 其实mongoDB就已经结束了(见下图)

    [外链图片转存失败(img-8a1FGtsc-1568280271446)(C:\Users\87781\AppData\Roaming\Typora\typora-user-images\1568275784251.png)]

  8. 修改mongoDB配置

    vim /etc/mongod.conf
    

    加上下面这句

    security:
      authorization: enabled
    

    esc + :wq! 保存退出

  9. 启动mongoDB

    systemctl start mongod
    
  10. 连接测试

    之前的连接就会显示未授权啦~

    [外链图片转存失败(img-SEGtvt5N-1568280271447)(C:\Users\87781\AppData\Roaming\Typora\typora-user-images\1568276665276.png)]

    把连接配置改成我们刚才配置的账号密码

    [外链图片转存失败(img-T7gtPnuL-1568280271448)(C:\Users\87781\AppData\Roaming\Typora\typora-user-images\1568276829485.png)]

    OK! 并且这个超级管理员可以使用任意数据库没有问题!

    [外链图片转存失败(img-wr5GGn2m-1568280271449)(C:\Users\87781\AppData\Roaming\Typora\typora-user-images\1568276870701.png)]

  11. 然后测试刚才的独立数据库分配用户

    注意: 这里的验证数据库, 其实就是存储用户的数据库(所以之前放同一个数据库方便)

    [外链图片转存失败(img-kcMmsSw0-1568280271449)(C:\Users\87781\AppData\Roaming\Typora\typora-user-images\1568278818836.png)]

OK! 并且只显示分配的数据库!

[外链图片转存失败(img-c87D4dsq-1568280271450)(C:\Users\87781\AppData\Roaming\Typora\typora-user-images\1568279024419.png)]

至此, 全篇完!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值