MongoDB安装和启动

从官网下载最新对应的版本然后解压,本文以3.6.9为例,将文件拷贝到opt目录下,然后解压:

[root@localhost opt]# tar zxvf mongodb-linux-x86_64-3.6.9.tgz
mongodb-linux-x86_64-3.6.9/README
mongodb-linux-x86_64-3.6.9/THIRD-PARTY-NOTICES
mongodb-linux-x86_64-3.6.9/MPL-2
mongodb-linux-x86_64-3.6.9/LICENSE-Community.txt
mongodb-linux-x86_64-3.6.9/bin/mongodump
mongodb-linux-x86_64-3.6.9/bin/mongorestore
mongodb-linux-x86_64-3.6.9/bin/mongoexport
mongodb-linux-x86_64-3.6.9/bin/mongoimport
mongodb-linux-x86_64-3.6.9/bin/mongostat
mongodb-linux-x86_64-3.6.9/bin/mongotop
mongodb-linux-x86_64-3.6.9/bin/bsondump
mongodb-linux-x86_64-3.6.9/bin/mongofiles
mongodb-linux-x86_64-3.6.9/bin/mongoreplay
mongodb-linux-x86_64-3.6.9/bin/mongoperf
mongodb-linux-x86_64-3.6.9/bin/mongod
mongodb-linux-x86_64-3.6.9/bin/mongos
mongodb-linux-x86_64-3.6.9/bin/mongo
mongodb-linux-x86_64-3.6.9/bin/install_compass

然后将mongod软连接到usr/bin下:

ln -s /opt/mongodb/bin/mongod /usr/bin/mongod

准备mongodb的config文件mongod.conf,并存放到/etc/mongod.conf:

dbpath = /home/mongo/db/ #数据文件存放目录
logpath = /home/mongo/log/mongodb.log #日志文件存放目录
logappend = true
port = #端口
bind_ip=0.0.0.0
fork = true #以守护程序的方式启用,即在后台运行
# nohttpinterface = true 这个配置需要去掉,不然会出现一个如下错误
# Error parsing INI config file: unrecognised option 'nohttpinterface'
auth=true

启动mongodb的服务:

mongod -f /etc/mongod.conf --auth

待服务起来后,开启另一个控制台窗口,切换到opt/mongodb/bin目录下,然后使用./mongo命令启动mongo客户端

./mongo
MongoDB shell version v3.6.9
connecting to: mongodb://127.0.0.1:27017
Implicit session: session { "id" : UUID("d40146fc-9578-487f-bf74-8a8318f498ff"
MongoDB server version: 3.6.
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user

这说明客户端已连接到mongo server

MongoDB如何设置权限(类似关系型数据库的用户名和密码)

 

MongoDB 缺省是没有设置鉴权的,业界大部分使用 MongoDB 的项目也没有设置访问权限。这就意味着只要知道 MongoDB 服务器的端口,任何能访问到这台服务器的人都可以查询和操作 MongoDB 数据库的内容。在一些项目当中,这种使用方式会被看成是一种安全漏洞。

本文介绍如何在单台 MongoDB 服务器上设置鉴权。设置完后,MongoDB 客户端必须用正确的用户名和密码登录,才能在指定的数据库中操作。

首先介绍下 MongoDB 的用户和权限。每个数据库都有自己的用户,创建用户的命令是db.createUser()(文档),当你创建一个用户时,该用户就属于你当前所在的数据库。

每个用户包含三个要素:用户名、密码和角色列表。下面是一个例子:

{
user: "dbuser",
pwd : "dbpass",
roles: ["readWrite", "clusterAdmin"]
}

这个例子表示一个名为dbuser的用户,它在当前的数据库中拥有 readWrite 和 clusterAdmin 两个角色。

--------------------------------------------------------------------------------------------------------------------------

MongoDB 内置了很多角色,但要注意,不是每个数据库的内置角色都一样。其中 admin 数据库就包含了一些其他数据库所没有的角色。

熟悉 Oracle 的童鞋们都知道,数据库用户有两种,一种是管理员,用来管理用户,一种是普通用户,用来访问数据。类似的,为 MongoDB 规划用户鉴权时,至少要规划两种角色:用户管理员和数据库用户。如果搭建了分片或主从,可能还会要规划数据库架构管理员的角色,它们专门用来调整数据库的分布式架构。

在创建用户之前,我们首先要修改 MongoDB 的启动方式。缺省方式下 MongoDB 是不进行鉴权检查的。我们只要在运行 MongoDB 的命令后面加上一个 --auth 参数即可,例如:

mongod --dbpath ./db1 --port 20000 --auth

如何创建用户管理员

用户管理员是第一个要创建的用户。在没有创建任何用户之前,你可以随意创建用户;但数据库中一旦有了用户,那么未登录的客户端就没有权限做任何操作了,除非使用db.auth(username, password)方法登录。

用户管理员的角色名叫 userAdminAnyDatabase,这个角色只能在 admin 数据库中创建。下面是一个例子:

> use admin
switched to db admin
> db.createUser({user:"root",pwd:"root123",roles:["userAdminAnyDatabase"]})
Successfully added user: { "user" : "root", "roles" : [ "userAdminAnyDatabase" ] }

这个例子创建了一个名为 root 的用户管理员。创建完了这个用户之后,我们应该马上以该用户的身份登录:

> db.auth("root","root123")
1
db.auth() 方法返回 1 表示登录成功。接下来我们为指定的数据库创建访问所需的账号。

--------------------------------------------------------------------------------------------------------------------------

如何创建数据库用户

首先保证你已经以用户管理员的身份登录 admin 数据库。然后用 use 命令切换到目标数据库,同样用 db.createUser() 命令来创建用户,其中角色名为 “readWrite”。

普通的数据库用户角色有两种,read 和 readWrite。顾名思义,前者只能读取数据不能修改,后者可以读取和修改。
下面是一个例子:

> use test
switched to db test
> db.createUser({user:"testuser",pwd:"testpass",roles:["readWrite"]})
Successfully added user: { "user" : "testuser", "roles" : [ "readWrite" ] }
> db.auth("testuser","testpass")
1

这样 MongoDB 的数据安全性就得到保障了,没有登录的客户端将无法执行任何命令。

centos 7.5 安装mongodb的更多相关文章

  1. Linux系统运维笔记(四),CentOS 6.4安装 MongoDB

    Linux系统运维笔记(四),CentOS 6.4安装 MongoDB 1,下载 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6 ...

  2. Centos 使用yum安装MongoDB 4.0

    1.配置MongoDB的yum源 创建yum源文件: #cd /etc/yum.repos.d #vim mongodb-org-4.0.repo 添加以下内容:(我们这里使用阿里云的源) [mngo ...

  3. Centos 7.x 安装 MongoDB

    官方安装资料:点击直达 本次以Centos为安装主机 1:首先先导入MongoDB的yum源,因为Centos默认是没有MongoDB的yum源,创建文件:/etc/yum.repos.d/mongo ...

  4. CentOS 6.5 安装 MongoDB

    1. 配置 yum 新建 /etc/yum.repos.d/mongodb-org-3.4.repo 文件,使用以下配置:(适用于 MongoDB 3.0 以后版本) [mongodb-org-3.4 ...

  5. CentOS 6.5安装MongoDB 2.6(多yum数据源)

    下面我们在CentOS 6.5 x64系统上安装最新的MongoDB 2.6.5版. 在MongoDB v2.6.5版的软件仓库一共有五个包: 1)mongodb-org此包是元数据包,它可以实现自动 ...

  6. Centos环境下安装mongoDB

    安装前注意: 此教程是通过yum安装的.仅限64位centos系统 安装步骤: 1.创建仓库文件: vi /etc/yum.repos.d/mongodb-org-3.4.repo 然后复制下面配置, ...

  7. CentOS 6.5安装MongoDB

    1.创建mongodb.repo文件在/etc/yum.repos.d/目录下创建文件mongodb.repo,它包含MongoDB仓库的配置信息,内容如下: [mongodb] name=Mongo ...

  8. CentOS 7 服务器配置--安装MongoDB

    #下载MongoDB源文件: wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.7-tgz 注意:wget此处 ...

  9. centos 7 64安装mongodb

    官网连接地址:https://www.mongodb.com/download-center?jmp=nav#community 列表中没有CentOS!!我选的是这个Linux 64-bit leg ...

随机推荐

  1. DevExpress XtraScheduler日程管理控件应用实例(1)-- 基本使用

    在一些应用场景中,我们可能需要记录某一天,某个时段的日程安排,那么这个时候就需要引入了 DevExpress 的日程控件XtraScheduler 了,这个控件功能非常强大,提供了很好的界面展现方式, ...

  2. FlytestingToolkit工具派送,懒人的测试思考

    工欲善其事必先利其器,在IT路上摸爬这些年,去年我们分享了<Fiddler录制jmeter脚本,干货分享>,今天我们有另外的思考,我懒,故我思考. 下载解压后是这样的: 双击 Flytes ...

  3. Centos编译Unix网络编程(第三版)卷1的源代码

    测试环境:Centos 1)在shell中输入./configure然后按回车(注意先让configure有执行权限 chomd 777 configure) 2)依次进入lib.libfree.li ...

  4. 第三课 操作系统开发之x86模拟环境搭建

    前面我们讲解了主引导程序的加载过程,并且制作了虚拟软盘a.img,最终这个主引导程序也在机器中成功运行了,但是实际开发的时候,并不会如此简单,免不了调试过程,如果还像上一节中直接将软盘放到机器中去加载 ...

  5. 学习magento要学哪些知识

    php框架水平,具体点的就是大名鼎鼎的ZF框架.别急,先还是熟悉下OSC吧,主要是热身下商城的那些业务流的知识,基本的数据流程.自己做模板的话CSS2.0水平还不能太低.JS框架JQ吧相对简单点.当然 ...

  6. JSON-java

    import net.sf.json.JSONArray; import net.sf.json.JSONObject; JSONObject jsonObject1 = new JSONObject ...

  7. HDU 1233:还是畅通工程(最小生成树)

    还是畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  8. hdu1160 dp

    hdu1160 题意:给出很多老鼠的数据,分别是它们的体重和跑速,为了证明老鼠越重跑得越慢,要找一组数据,由若干个老鼠组成,保证老鼠的体重依次增加而跑速依次减小,问这组数据最多能有多少老鼠,并按体重从 ...

  9. 偶尔用得上的Git操作

    Git 工作流 一个不错的工作流图示 创建一个空分支 git checkout --orphan 分支名 删除远程分支和tag git push origin :<branchName> ...

  10. 转-Hive/Phoenix + Druid + JdbcTemplate 在 Spring Boot 下的整合

    Hive/Phoenix + Druid + JdbcTemplate 在 Spring Boot 下的整合 http://blog.csdn.net/balabalayi/article/detai ...