0让服务器端开启服务

sudo mongod --port 27017 --dbpath /data/db --logpath /data/log --logappend --fork --auth

在位置为/data/db的位置上开始数据库服务,端口27017

--logpath 日志存放路径

--logappend 日志追加的形式添加日志

--fork 后台运行进程

如果前台运行的数据库,可以关闭终端就能关闭服务

如果使用--fork在后台运行mongdb服务,那么就要通过向服务器发送shutdownServer()消息来关闭。
 
1、普通命令:
$ ./mongod
> use admin
> db.shutdownServer()
 
要注意的是,这个命令只允许在本地,或是一个经过认证的客户端。

1初始化

创建完数据库之后,就可以直接键入mongo + 网址(如果端口是默认的27017,本地的数据库的话不需要加网址)

use admin --选择admin数据库

db.createUser({user: 'admin', pwd: 'admin123', roles: [{role: 'root', db: 'admin'}]})

然后就会显示成功添加用户

2连接数据库

之后进入数据库有两种方法

第一种是:

1mongo 2use admin 3db.auth(‘admin’,‘admin123’)

第二种是

mongo -u admin -p admin123 127.0.0.1/admin

我觉得还是第一种方法好记一点

如果不这么做,你在数据库下面的操作会显示没有授权

3添加和删除用户

db.createUser({user: 'admin', pwd: 'admin123', roles: [{role: 'root', db: 'admin'}]})这跟之前的操作差不多

用户的role有root read write readWrite

但一定要在相应的数据库下面,不然操作十分繁琐

4添加数据

db.Hello.insert({name:'World'})

db.Hello.find()

遇到的大坑:

在远程连接的时候,总是显示用户鉴权失败,这是因为在3.0版本以后,服务器出现了一个新的SCRAM-SHA-1认证方式 ,这需要第三方工具配合,

正常远程连接,认证的方式是MONGODB-CR,我们可以用

use admin

db.system.users.find()

显示的结果里面credentials如果有SCRAM-SHA-1认证方式的用户都要删掉

解决方式如下

首先关闭认证,修改system.version文档里面的authSchema版本为3,初始安装时候应该是5,命令行如下: 
> use admin 
switched to db admin 
>  var schema = db.system.version.findOne({"_id" : "authSchema"}) 
> schema.currentVersion = 3 
3 
> db.system.version.save(schema) 
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

再重新添加用户的话,认证方式就变成了 MONGODB-CR

之后在启动服务器进程(带--auth)。

python3 使用mongo数据库的更多相关文章

  1. 【MongoDB】windows平台搭建Mongo数据库复制集(类似集群)(转)

    原文链接:[MongoDB]windows平台搭建Mongo数据库复制集(类似集群)(一) Replica  Sets(复制集)是在mongodDB1.6版本开始新增的功能,它可以实现故障自动切换和自 ...

  2. 将 node.js 的数据保存到 mongo 数据库中

    Mongo 数据库 安装 首先到 Mongo 的官方网站下载安装程序:http://www.mongodb.org/,我下载的文件名为:mongodb-win32-x86_64-2008plus-2. ...

  3. mongo数据库基础操作

    概念 一个mongod服务可以有建立多个数据库,每个数据库可以有多张表,这里的表名叫collection,每个collection可以存放多个文档(document),每个文档都以BSON(binar ...

  4. 二、mongo数据库

    官网:https://www.mongodb.com/ 进入官网 右上角有个下载按钮Download 1.完成安装后:运行--cmd(命令面板) 2.常用命令: 打开数据库 mongod –dbpat ...

  5. Docker Mongo数据库开启用户认证

    一.启动mongo容器的几种方式 #简化版 docker run --name mongo1 -p 21117:27017 -d mongo --noprealloc --smallfiles #自定 ...

  6. python连接Mongo数据库

    python连接Mongo数据库主要采用pymongo连接,一般情况分为两种连接方式,一种通过指定端口和地址直接连接,另一种通过uri的格式连接 1.通过指定端口和地址连接Mongo conn = M ...

  7. ubuntu安装mongo数据库

    安装mongo数据库,在shell下输入 sudo apt-get install mongodb 如果需要在Python中使用mongo数据库,还需要额外安装Python封装库 pip instal ...

  8. mongo数据库相关目录

    mongodb的docker化安装 mongodb的windows系统下安装 grafana使用Prometheus数据源监控mongo数据库 mongodb副本集的docker化安装 mongodb ...

  9. grafana使用Prometheus数据源监控mongo数据库

    数据库改用mongo后,监控需求就需要整合进grafana里,由于一直在坚持docker化部署,那么此次也不例外. 1. 安装Prometheus: What is Prometheus? Prome ...

随机推荐

  1. kube-scheduler源码分析(1)-初始化与启动分析

    kube-scheduler源码分析(1)-初始化与启动分析 kube-scheduler简介 kube-scheduler组件是kubernetes中的核心组件之一,主要负责pod资源对象的调度工作 ...

  2. 详解Spring DI循环依赖实现机制

    一个对象引用另一个对象递归注入属性即可实现后续的实例化,同时如果两个或者两个以上的 Bean 互相持有对⽅,最终形成闭环即所谓的循环依赖怎么实现呢属性的互相注入呢? Spring bean生命周期具体 ...

  3. Visual Studio Code 配置C、C++ 文件debug调试环境

    目录 vscode C/C++ Extension Pack 插件安装 vscode windows 端 debug 配置 window MinGW 环境安装 windows 端 C.CPP 单文件 ...

  4. Ubuntu20.04 Focal Cloudimage扩容以及KVM安装的问题记录

    运行Ubuntu20.04的KVM虚机遇到一些问题, 单独总结一下 镜像扩容 不能用virt-resize --expand /dev/sda1 old.qcow2 new.qcow2这样的命令, 这 ...

  5. 【C# 锁】 SpinLock锁 详细分析(包括内部代码)

    OverView 同步基元分为用户模式和内核模式 用户模式:Iterlocked.Exchange(互锁).SpinLocked(自旋锁).易变构造(volatile关键字.volatile类.Thr ...

  6. Jackson学习笔记(详细)

    学习地址:http://tutorials.jenkov.com/java-json/index.html github地址:https://github.com/FasterXML/jackson ...

  7. updatexml , extractvalue 报错注入

    过滤了union, < ,> = 空格过滤,()没有被过滤 updatexml没有被过滤 那么就不能用布尔类型注入 数据库名 username=admin'or(updatexml(1,c ...

  8. idea教程--Maven 骨架介绍

    简单的说,Archetype是Maven工程的模板工具包.一个Archetype定义了要做的相同类型事情的初始样式或模型.这个名称给我们提供来了一个一致的生成Maven工程的方式.Archetype会 ...

  9. 动手学TCP——CS144实验感想

    在Stanford CS144的课程实验Lab0~Lab4中,我们动手实现了一个自己的TCP协议,并且能够真的与互联网通信!此外,感谢Stanford开源本实验并提供了大量的优质测试用例,使得我们仅仅 ...

  10. js识别手机型号做业务判断

    navigator为Window对象的一个属性,指向了一个包含浏览器相关信息的对象. navigatot中包含了一些常用到的属性,如: navigator.appVersion 浏览器的版本号 nav ...