专栏首页JMCuiLinux 安装 MongoDB

Linux 安装 MongoDB

一、下载

Linux:CentOS 7.3 64位

MongoDB:3.6.4

安装目录:/usr/local

cd /usr/local
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.6.4.tgz

回到顶部

二、解压缩

    解压缩安装包并重命名(方便管理)

tar -zxvf mongodb-linux-x86_64-rhel62-3.6.4.tgz
mv mongodb-linux-x86_64-rhel62-3.6.4 mongodb

回到顶部

三、配置MongoDB

    需要配置三项内容,一个是数据文件夹(db,文件名可自定义),一个是日志文件夹(logs,文件名可自定义),一个是配置文件(mongo.conf)

1、数据文件夹

mkdir db

2、日志文件夹

mkdir logs

3、创建配置文件

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /usr/local/mongodb/logs/mongod.log #日志文件存放目录

# Where and how to store data.
storage:
  dbPath: /usr/local/mongodb/db #数据文件存放目录
  journal:
    enabled: true

# how the process runs
processManagement:
  fork: true  #以守护程序的方式启用,即在后台运行
  pidFilePath: /usr/local/mongodb/mongod.pid  # location of pidfile

# network interfaces
net:
  port: 27017 #端口
  bindIp: 0.0.0.0  # Listen to local interface only, comment to listen on all interfaces.端口对外开放

4、效果图

5、启动

    MongoDB 的 bin 目录下执行:

./mongod --config /usr/local/mongodb/mongod.conf

回到顶部

四、添加用户

    MongoDB 安装完成后默认是不用验证密码的,这在生产环境上是绝对不允许存在的,我们需要创建用户,并增加用户验证!

    如果将一个用户添加到admin数据库,这个用户将自动获得所有数据库的权限,即管理员账户。如果将一个用户添加到普通的数据库,这个用户只能获得该数据库的相关权限,即普通用户。

    切换至MongoDB的 bin目录下:

1、添加管理员账户

./mongo
>use admin
>db.createUser({user:"root",pwd:"password",roles:["root"]})

2、启用MongoDB 授权

    在 mongod.conf 后加上:

security:
  authorization: enabled //启用授权

3、重启生效

    关闭MongoDB服务器:

./mongod -shutdown -dbpath=/usr/local/mongodb/db

    授权后的启动MongoDB服务器:

./mongod --dbpath=/usr/local/mongodb/db --logpath=/usr/local/mongodb/logs/mongod.log --logappend --port 27017 --auth --fork

4、认证用户

./mongo
>use admin
>show dbs //会提示用户未验证
>db.auth("root","password")
>show dbs
admin   0.001GB
config  0.000GB
local   0.000GB

5、添加普通用户

> use lxcx //创建数据库
> db.createUser({user:"summer",pwd:"summer",roles:[{"role" : "readWrite","db" : "lxcx"}]}); //创建这个数据库的读写权限用户

user:用户名

pwd:密码

roles:指定用户的角色,可以用一个空数组给新用户设定空角色;在roles字段,可以指定内置角色和用户定义的角色。role里的角色可以选:

Built-In Roles(内置角色):
    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)
    7. 内部角色:__system
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MongoDB系列三(Spring集成方案).

    一、前言  MongoDB是最为流行的开源文档数据库之一。Spring Data MongoDB提供了三种方式在Spring应用中使用MongoDB: 通过注...

    JMCui
  • Docker 系列二(操作镜像).

        -- Docker 镜像仓库地址 :一般是 域名或者IP[:端口号]。默认地址是 Docker Hub     -- 仓库名 :两段式名称,即 用户名/...

    JMCui
  • Hybris CronJob

    一、概念     CronJobs提供了在特定的时间或者间隔内处理业务逻辑的方法。一般创建一个Cronjob有两种方式,第一种是定义Java类,由Hybris生...

    JMCui
  • 关系型数据库 VS NoSQL,谁才是王者

    SQL(结构化的查询语言)数据库是过去四十年间存储数据的主要方式。20世纪90年代末随着Web应用和MySQL、PostgreSQL和SQLite等开源数据库的...

    黄泽杰
  • IDEA同款数据库管理工具,提示太全了,用起来贼香!

    本文主要讲述了在DataGrip中管理MySQL和MongoDB的常用操作及使用技巧,用过Jetbrains公司其他产品的朋友应该很容易就可以上手了!

    macrozheng
  • 【资讯】SQL/NoSQL两大阵营激辩:谁更适合大数据

    目前企业在着手推动大数据项目的过程中,经常会遇到这样一个关键性的决策难题——到底该使用哪种数据库方案?经过综合考量,最终的选项往往只剩下SQL与NoS...

    小莹莹
  • SQL/NoSQL两大阵营激辩:谁更适合大数据

    企业在着手推动大数据项目的过程中,经常会遇到这样一个关键性的决策难题——到底该使用哪种数据库方案?经过综合考量,最终的选项往往只剩下 SQL 与 NoSQL 两...

    小小科
  • 大数据应用 选择SQL还是NoSQL?

    执行大数据项目的企业面对的关键决策之一是使用哪个数据库,SQL还是NoSQL?SQL有着骄人的业绩,庞大的安装基础;而NoSQL正在获得可观的收益,且有很多...

    静一
  • 一文读懂NoSQL数据库

    摘要:SQL数据库对数据类型和一致性有要求,NoSQL为了速度、灵活性和规模而放弃了这些要求。 在开发应用程序时,最基本的选择之一就是是否使用SQL或NoSQL...

    企鹅号小编
  • 云开发数据库还能这么玩?10则数据库管理小妙招奉上!

    数据好比互联网产品的“血液”,数据库的管理效率关乎一个产品甚至一项业务能否良好且高效地运转。在使用云开发时,如何通过云数据库来做好数据管理,为你的产品打通“任督...

    腾讯云开发TCB

扫码关注云+社区

领取腾讯云代金券