刚刚接触mongo,可能会踩到不少的坑,在此记录一发mongo的配置日记,之后随着学习的进行,将陆陆续续更新mongoDB的不同配置问题。

MongoDB 权限设置在安装MongoDB之后,由于没有在安装使设置任何的权限,需要进入MongoDB系统进行配置。默认情况下,MongoDB安装路径下bin目录下输入// 因为我的数据库目录存在了一个只有root有权限的地方,所以开启mongo需要sudo$ sudo ./mongod

$ ./mongo

将会进入不通过权限认证(用户名,密码)访问mongo数据库的模式,在这个模式下,是没有办法进行新用户的创建的,所以我们在开启Mongo需要多加一个配置项$ sudo ./mongod --auth

$ ./mongo

此时就会进入一个需要验证用户名,密码的模式,我们进入admin后,就可以创建一个超级用户了~具体执行代码如下:// in MongoDB system;在3.0之后,db.addUser()不再使用>>> use admin;

>>> db.createUser({

user: "root",

pwd: "root",

roles:[{

role: "root",

db: "当需要指定这个用户可以访问的database时,这个字段可以用来指定这个database"

}]

})

这样就创建了一个MongoDB的超级用户。

如何验证用户是否可用在创建好以上用户名密码之后,在--auth的模式下重启mongo。此时,如果输入>>> show collections

系统将会弹出类似于"not authorized"的信息,表明你不是一个通过验证的用户。此时,如果执行以下代码:>>> use admin;

>>> db.auth("root", "root");1>>> show collections;

我们看到系统在auth之后返回了1,表明已经通过了验证。此时show collections将会看到admin下面的所有信息。至此,该用户名已可用。

超级用户权限不够怎么办我们也有可能遇到在初始情况下因为手贱把db.createUser方法中的role设定为空的情况,这样的话我们创建的root的用户是没有任何的权限的,就连退出都不行。此时的解决方法是,退出auth模式,重新进入非认证的模式,使用db.updateUser()方法更改root的权限:// 注意这个地方没有--auth的配置$ sudo ./mongod

$ ./mongo

>>> use admin;

>>> db.updateUser("root", {roles:[{role: "root", db: 指定的数据库名称}],

pwd: ”也可以修改密码“})

这样这个”root“就有了超级管理员的权限。

MongoDB后台运行服务通常,我们启动MongoDB需要先./mongod再mongo才可以启动这一服务,当./mongod这个会话被杀死后,mongo的服务就停止了。所以,如果是远程的跳板机,我们需要通过后台启动服务的方法,使得这台机器上的Mongo服务处于一直运行的状态:$ sudo ./mongod --fork --logpath /data/log/mongodb.log --dbpath /data/db/ --auth

注意加上auth,这样你的mongo就可以随时使用$ ./mongo

通过用户名认证来访问各个数据库了。

Mongo 可视化界面的使用进入roboMongo后,可以新增一个MongoDB的connection

roboMongo新建mongo链接创建链接需要点击create,输入所需的address,和authentication下对应数据库访问的的用户名密码,即可建立连接。

使用Scala连接MongoDB数据库作者在经过一番比较之后,选择了mongo-scala-driver这个jar包,下面说一下这个包的配置方法(使用包管理框架为Maven)import scala.collection.immutable.IndexedSeq

import org.mongodb.scala._  import Helpers使用的uri格式一般为:mongodb://[用户名]:[密码]@[host1]:[port1][,host2[:port2]]/database;如"mongodb://test:123456@localhost:27017/testBase"对MongoDB进行操作

这里再插一句关于MongoDB在认证模式下如何直接使用认证的uri访问MongoDB的方法:// 建立连接

val mongoClient = MongoClient( [你的MongoDB uri] )

val database = mongoClient.getDatabase( [你有权限访问的database的名字] )

val collection = database.getCollection( [你想要访问的collection名字] )  // 删除该collection

collection.drop().results()  // 向该collection批量添加记录

// 因为在操作的时候这个方法里的raw input是一个HashMap,

// 对于数据库的insert操作就用HashMap为例

val documents: IndexedSeq[bson.Document] = intToInfo.toIndexedSeq.map{

case (i, switchInfo) => {              // 注意这里用到了gson的jar包

val gson = new Gson()              // insert的数据格式要转换为IndexedSeq[bson.Document]

Document(gson.toJson(switchInfo))

}}

collection.insertMany(documents).results()pom中的配置:

org.mongodb.scala

mongo-scala-driver_2.11

2.0.0

后续将会更新数据的读取,更新,前端展示等内容,由于本文太长不看,可能会另起一篇。

作者:冘若烦

链接:https://www.jianshu.com/p/1dc8f982600f

scala连接mongodb_MongoDB 的用户配置与基于Scala的使用相关推荐

  1. mysql配置所有ip连接_Mysql查看用户连接数配置及每个IP的请求情况

    1.查看当前数据库的连接情况 show full processlist; shop processlist; 2.查看所有用户的总连接数 show variables like '%max_conn ...

  2. vsftpd基于mysql_vsftpd的基于pam_mysql的虚拟用户配置示例

    ~]# yum install mariadb-server ~]# yum install vsftpd 因为中CentOS 7平台上/lib64/security/中没有pam_mysql模块驱动 ...

  3. 全国大学生大数据技能竞赛——基于Scala和Echart的大数据分析与挖掘

    基于Scala和Echart的大数据分析与挖掘 题目三:大数据分析与挖掘案例 Spark基站统计分析 Scala语法基础 数据读取 1.读取文件数据 (1)按行读取 (2)按字符读取 2.写入数据 数 ...

  4. 人工智能-推荐系统-模块01:离线统计模块【使用SparkSQL(基于Scala语言/Python语言)进行离线统计分析:历史热门商品统计、近期热门商品统计、商品平均评分统计...】

    一.基于scala语言的SparkSQL离线统计分析 1.将数据导入MongoDB数据库 DataLoader.scala import com.mongodb.casbah.commons.Mong ...

  5. django oracle数据库配置,django连接oracle时setting 配置方法

    下一步是将新创建的应用程序与项目相关联.为此,您需要编辑 myproj 文件夹中的 settings.py 文件,将字符串"myproj.myapp"追加到 INSTALLED_A ...

  6. mysql主从配置 ssl_Mysql主从基本配置及基于ssl的配置详解

    一.网络拓扑图 二.实验简介 如图所示,本实验主要是实现两台Mysql服务器之间的主从复制,包括:设置主从服务器之间的半同步.mysql的复制过滤.和基于SSL的mysql主从复制功能,上图中 主服务 ...

  7. Ubuntu18.04配置搭建基于Gazebo的虚拟仿真平台(Px4):无人机(UAV)、无人车等模拟实验平台

    这篇我觉得是写得比较详细完整的 摘自:https://dgzc.ganahe.top/ganahe/2021/uavgazebomoni.html Ubuntu18.04配置搭建基于Gazebo的虚拟 ...

  8. 【树莓派入门】实验一 树莓派基本配置(基于Python)

    [树莓派入门]初学树莓派(实验一 树莓派基本配置(基于Python) 一 格式化 SD 卡 二 下载官方镜像 三 烧录 SD 卡 四 Putty 连接 4.1 设置网络共享 4.2 查询树莓派的 IP ...

  9. Windows server 2012 远程连接关闭后用户被注销,导致OA系统异常

    出问题前的操作 6月2日做了安全加固,安装了OpenSSH服务 6月3日安装了wRsync 服务定时同步数据到其他服务器 6月6日晚上21点25分重启了服务器 6月6日晚上21点50分服务已经启动正常 ...

  10. Flink系列之:基于scala语言实现flink实时消费Kafka Topic中的数据

    Flink系列之:基于scala语言实现flink实时消费Kafka Topic中的数据 一.引入flink相关依赖 二.properties保存连接kafka的配置 三.构建flink实时消费环境 ...

最新文章

  1. startActivityForResult 请求码不正确
  2. GetCurrentDirectory()函数误区
  3. TCP/IP / 四次挥手之状态转换图、过程说明和原因
  4. leetcode 954. Array of Doubled Pairs | 954. 二倍数对数组(Java)
  5. [CF741D] Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths
  6. android个人中心界面_Android 机也能用上你熟悉的浏览器插件,这些浏览器不可错过...
  7. 服务器系统性能计数器,MSRS 2008 Windows Service 性能对象的性能计数器
  8. Zookeeper Tutorial 1 -- Overview
  9. 表按某个字段,新增一个序号列
  10. com.sun.jdi.InvocationException occurred invoking method 异常
  11. Java 用POST方式 传对象给 Servlet
  12. Scala学习(二、控制结构)
  13. c++冒泡排序_python+C、C++混合编程的应用
  14. makefile中的wildcard和notdir和patsubst
  15. 同济版《线性代数》引争议,从清华改用MIT数学课程看中美数学教育差距!
  16. 1x pcie 速度_usb 3.0 速度 pciex1 pci 速度 各总线的速度
  17. 阿里云gpu服务器计算性能,gpu服务器价格(最新收费标准)
  18. OpenPose 运行指令 (Version@1.7)
  19. 2021-SZTU第一届acm校赛总结
  20. 基于SSM框架的借阅图书管理系统

热门文章

  1. 20200623每日一句
  2. 190328每日一句 When you forgive, you release.
  3. 程序实现对数据排序并按出现次数进行排序 目录 1. 题目程序实现对数据排序并按出现次数进行排序 1 2. 思路 2 3. 效果 2 4. 代码 /00listPrj/src/Sort.java 2
  4. Atitit uke签名规范 与防伪鉴别 attilax总结
  5. Atitit 输入法原理与概论ati use
  6. atitit 点播系统 概览 v2 qb1.docx
  7. Atitit.sql where条件表达式的原理  attilax概括
  8. atitit.ajax 最佳实践跟框架选型 o99
  9. paip.js input onclick失灵不起作用无反应的解决.txt
  10. paip.提升效率---质量控制--代码风格模板化