MongoDB安装启动详解

一,修改启动端口

mongo的默认端口为27017 如果启用的是27017端口并且在公网上很容易被人攻击,所以第一点我们要修改端口

sudo ./mongod --dbpath=/data/db --fork --port 29089 --logpath=/data/logs

我们现在启动的是29089端口

启动shell

$ ./mongo

报错:

Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused

这是是因为我们修改了端口,而默认连接的是27017的端口,所以我们进入shell时也要指定启动服务似的端口

$ ./mongo --port 29089

这样就可以进入了

二,用户认证

mongodb默认是没有管理账户的,需要开发人员添加管理员账户,在启动mongo服务时添加身份认证才可以进入数据库,所以我们需要做两点:

  • 添加管理员
  • 启动服务时时添加 auth 指令

mogodb 默认有两个数据库:

在我们初次安装并启动mongo服务后,进入shell管理可以看到已存在两个数据库,在执行show dbs时 会显示以下两个数据库

  • admin
  • local

我们要在admin里添加用户以便在进入数据库时认证,我是在mac下操作,以下都是mac下的命令,下面演示整个用户添加和认证的过程

1.检查mongo服务是否开启

 $ ps -ef | grep mongo

未找到mongo启动进程

2.启动mongo服务

$ cd /usr/local/bin
$ ./mongod --dbpath=/data/db --fork --port 29089 --logpath=/data/logs

成功启动mongo

3.进入shell管理后台

$ cd /usr/local/bin
$ ./mongo --port 29089

4.查看当前所有数据库

$ show dbs

除了admin,local数据库其他都是我业务上使用后建立的数据库,可以看到我们直接就访问到数据库并且可以操作

5.在admin库里添加管理员用户

$ use admin
$ db.getUsers();

使用admin数据库并检查是否存在用户

6 创建用户

$ db.createUser({user:"leinov",pwd:"123456",roles:["root"]})

db.getUsers();

db.createUser()创建一个用户,并分配角色,我们创建里一个超级管理员,这个角色可以对本机mongo实例内的所有数据库做有效的读写操作,关于db.createUser()方法参考官方文档 https://docs.mongodb.com/manual/reference/method/db.auth/

7 重新启动服务并添加认证auth

$ sudo ./mongod --dbpath=/data/db --fork --port 29089  --logpath=/data/logs --auth

在启动命令后面加上auth这样在进入数据库时就会开启认证

8.重新进入shell后台

$ ./mongo--port29089
$ show dbs

提示没有权限查看数据库list

9.切换到admin数据库验证

$ use admin
$ db.auth({user:"leinov",pwd:"123456"})

db.auth()方法是验证用户的操作方法,返回值为0/1 1为验证成功

10.再次查看数据库

$ show dbs

完成端口修改和用户认证基本上就可以保证数据库的安全了,我自己的mongo也被黑了,网上其实还有很多裸奔的mongo数据库,所以一定要给自己的mongo修改端口添加用户认证保证安全。

3.0后的mongo很多方法都有变化,具体参考官方文档 https://docs.mongodb.com/

MongoDB安全策略的更多相关文章

  1. NoSQL与MongoDB介绍

    写在前面 本文是由一次演讲整理出来的,文中大部分资料来源于网络,感谢Wikipedia,Google和MongoDB官网.文中使用的MongoDB版本为1.2.4. What is NoSQL NoS ...

  2. CentOS MongoDB 高可用实战

    原文:https://www.sunjianhua.cn/archives/centos-mongodb.html 一.MongoDB 单节点 1.1.Windows 版安装 1.1.1 获取社区版本 ...

  3. 【Mongodb教程 第十六课 】 分享NO-SQL开发实战

    最近研究了一下NOSQL,现整理目录如下: 一.关系数据库的瓶颈: 二.NOSQL概述: 三.NOSQL中的热门数据库MongoDB介绍及安装配置: 四.MongoDB开发模式及实战: 一.关系数据库 ...

  4. MongoDB最佳安全实践

    在前文[15分钟从零开始搭建支持10w+用户的生产环境(二)]中提了一句MongoDB的安全,有小伙伴留心了,在公众号后台问.所以今天专门开个文,写一下关于MongoDB的安全. 一.我的一次Mong ...

  5. MongoDB中如何优雅地删除大量数据

    删除大量数据,无论是在哪种数据库中,都是一个普遍性的需求.除了正常的业务需求,我们需要通过这种方式来为数据库"瘦身". 为什么要"瘦身"呢? 表的数据量到达一定 ...

  6. 【翻译】MongoDB指南/聚合——聚合管道

    [原文地址]https://docs.mongodb.com/manual/ 聚合 聚合操作处理数据记录并返回计算后的结果.聚合操作将多个文档分组,并能对已分组的数据执行一系列操作而返回单一结果.Mo ...

  7. 【翻译】MongoDB指南/CRUD操作(四)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...

  8. 【翻译】MongoDB指南/CRUD操作(三)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...

  9. 【翻译】MongoDB指南/CRUD操作(二)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...

随机推荐

  1. 如何解释json的字符串

    public void getToken(){ String json = getJedis().get("f2b9152f36424e8b8a454df9b50eb743"); ...

  2. Mac用ssh登录Ubuntu14.04

    在Ubuntu上配置ssh-server sudo apt-get install openssh-server  然后确认ssh-server是否启动  ps -e | grep ssh 如果存在s ...

  3. 【PHP】震惊,一张图详解递归函数!!!!

    在PHP学习中,递归函数是一个非常重要也是非常难以理解的部分,本博文将通过一张图尽可能演示这个过程,不对之处还请指出

  4. localStorage与location的用法

    1.localStorage 是h5提供的客户端存储数据的新方法: 之前,这些都是由 cookie 完成的.但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 coo ...

  5. 【原】无脑操作:Windows 10 + MySQL 5.5 安装使用及免安装使用

    本文介绍Windows 10环境下, MySQL 5.5的安装使用及免安装使用 资源下载: MySQL安装文件:http://download.csdn.net/detail/lf19820717/9 ...

  6. Centos7yum安装Redis详细教程

    原本是在自己的mac上安装redis的,通过brew去安装的redis觉得很简单,实际macos系统与centos系统还是有一些区别的. 1.yum安装redis服务 sudo yum install ...

  7. c#编程-线程同步

    线程同步 上一篇介绍了如何开启线程,线程间相互传递参数,及线程中本地变量和全局共享变量区别. 本篇主要说明线程同步. 如果有多个线程同时访问共享数据的时候,就必须要用线程同步,防止共享数据被破坏.如果 ...

  8. 事务之使用JDBC进行事务的操作

    本篇讲述数据库中非常重要的事务概念和如何使用MySQL命令行窗口来进行数据库的事务操作.下一篇会讲述如何使用JDBC进行数据库的事务操作. 事务是指数据库中的一组逻辑操作,这个操作的特点就是在该组逻辑 ...

  9. windows上定时执行php文件

    <?php $fp = fopen("E:/wwwroot/test/plan.txt", "w+"); fwrite($fp, date("Y ...

  10. css3变换,过度,动画实现梦幻网页

    html和css3一出,整个互联网设计发生了颠覆性的改变,各大IT企业也推出了很多新颖的设计,比如百度浏览器的下载首页,fullpage设计风格加css动画让网页看起来很流畅舒服. css3的变换有3 ...