MongoDB 简易入门 学习(一)

用MongoDB一定要开用户认证。
一些可视化的软件已经加入了这个认证,连接数据库时容易报错。

注:网上的一些文章比较零散;找起来不方便。小白的我找了多久,看了几篇文章才弄明白。所以下面是我的学习记录,方便自己。因学习Python要用到MongoDB,所以后面以Python操作。

1. 下载mongoDB

官网下载

下载社区版(免费)

image

安装就不记录了。

我的安装路径是:D:\Program Files\MongoDB\Server\3.4\

下面有用到安装路径的地方,请对照自己的路径。

2. 关于启动MongoDB

有几种方法,相同的地方都是:

在你想放置数据的地方,新建文件夹(MongoDB自身不会新建,只会报错)

我用的路径是:H:\MongoDB\data\db (不一定按这个,只建议最后一个文件夹用db,以记录这是数据库文件夹)

方法1:

使用CMD(命令提示符,不知道请问度娘),打开安装路径

下面中用了一个小技巧: 在填写了文件夹第一个字母后用TAB键,选择你需要的名字。

image

注:一些文章中要把路径D:\Program Files\MongoDB\Server\3.4\bin 加入环境变量PATH,这只是简化上面的转入安装路径的动作。在CMD可以直接做下一步。

打入:

mongod --dbpath H:\MongoDB\data\db 

后会出面一些日志文字。会就看看,不会就先放一边,不要关掉。(注意路径中有空格,请用mongod --dbpath "H:\MongoDB\data\db")

用浏览器打开网址 http://127.0.0.1:27017/

或者 localhost:27017

如果出现下面提示,恭喜你,MongoDB已经启动了。 如果没有,要查看CMD中的提示,看那里错了。

image

关闭MongoDB 比较简单,在刚刚的CMD中按下Ctrl+C

这个方法比较简单,但每次使用就很麻烦。每次都要用CMD打入指令。同时日志不方便保存。

方法2:

安装为Windows服务,之后可以通过服务功能(win+r 打开运行 输入 services.msc)打开,也可以在CMD中用net start MongoDB 开启 ;net stop MongoDB 关闭

注意:CMD需要以管理员身份运行
注意:CMD需要以管理员身份运行
注意:CMD需要以管理员身份运行

image

操作如下,在数据库路径H:\MongoDB\data\ 下增加一个文件夹log,用于存放日志。

在安装目录,或者在数据库目录下,新建名为: "mongo.conf" 的文件。我是放在D:\Program Files\MongoDB\Server中

内容如下:

dbpath=H:\MongoDB\data\db #数据库路径
logpath=H:\MongoDB\data\log\mongo.log #日志输出文件路径
logappend=true #错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件
journal=true #启用日志文件,默认启用
quiet=false #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
port=27017 #端口号 默认为27017
auth=false #启用用户登陆认证,第一次使用要设置为false,之后启用true(第一次使用MongoDB是没有建立用户)

将内容中路径改为自己的

和方法1一样,在CMD中进入安装目录

image

打入

mongod --config "D:\Program Files\MongoDB\Server\mongo.conf" --install --serviceName "MongoDB"

在服务功能 启动MongoDB 或者在CMD中打入net start MongoDB

image

最后,用浏览器测试服务是否启动:

http://127.0.0.1:27017/

或者localhost:27017

3. 初步使用MongoDB

A.连接数据库

使用CMD

如果在环境变量加入了安装路径。就直接打入

mongo

不然就要用CD进入安装路径

image

再打入mongo了


image.png

也可以在安装目录下

image.png

启动mongo

使用可视化工具

还没有使用,待补充。

B.建立用户

在MongoDB中用户是与数据库关联的,用户只能操作对应的数据库,(PS:除admin数据库下的用户)
下面是以CMD的方式建立新用户:#后为注释不需要输入

use admin  #设置当前数据库(字面就用数据库admin),admin是默认最高权限数据库

db.createUser({user: "admin", pwd: "admin",roles: [{role: "root", db: "admin"} ] } )
#建立用户信息 用户名:admin;密码:admin;权限信息[用户角色:root(超级用户),对应数据库:admin]

image.png

PS:用Python建立用户的方式

import pymongo
client = pymongo.MongoClient('mongodb://localhost:27017/')
#连接mongo
client.admin.add_user('admin','admin',roles=[{'role':'root','db':'admin'}])
#在admin数据库中新增用户:用户名admin;密码:admin;权限信息[用户角色:root(超级用户),对应数据库:admin]

下面是系统内置角色的介绍。

Database User Roles 普通用户角色

read        允许用户读取数据库(只读)
readWrite   允许用户读写数据库

Database Administration Roles 数据库管理员角色

dbAdmin       允许用户在数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
dbOwner       单数据库最大权限,是readWrite、dbAdmin与userAdmin的结合体
userAdmin     允许用户向system.users集合写入,可以数据库里创建、删除和管理用户(管理数据库用户)
 
Cluster Administration Roles  集群管理员角色
clusterAdmin    管理者最大权限,是以下三者的结合体
clusterManager  供管理和监视操作。以分别访问配置、分片和复制集相关函数
clusterMonitor  提供监视工具只读访问
hostManager     提供监视和管理服务器的能力

Backup and Restoration Roles  备份和恢复角色

backup      只有备份数据库能力
restore     只有恢复数据库能力

All-Database Roles 所有数据库角色

readAnyDatabase       在admin下建立,可以读取所有数据库的信息(类似于所有数据库的read账户)
readWriteAnyDatabase  在admin下建立,可以读写所有数据库的信息(类似于所有数据库的readWrite账户)
userAdminAnyDatabase  在admin下建立,可以管理所有数据库的用户(类似于所有数据库的userAdmin账户)
dbAdminAnyDatabase    在admin下建立,可以管理所有数据库的信息(类似于所有数据库的dbAdmin账户)

Superuser Roles 超级用户角色

root 在admin下建立,超级账号,超级权限;与win中的administrator相似

具体权限,请查看MongDB文档

建立用户后,重启MongoDB,建议启用auth=true,以提高安全性。

C.认证登录

用CMD连接MongDB后

use admin
db.auth('admin','admin') #登陆数据库,用户名:admin,密码:admin。

image.png

用Python认证的方法有多种,下面列出其中二种:

import pymongo

#方法一
client = pymongo.MongoClient('mongodb://localhost:27017/')
#建立和数据库系统的连接,创建Connection时,指定host及port参数
db_auth = client.admin
db_auth.authenticate("admin", "admin")
#admin 数据库有帐号,连接-认证-切换库
db = client.mydb
#连接需要的数据库

#方法二
client = pymongo.MongoClient('mongodb://admin:admin@localhost:27017/admin')
#建立和数据库系统的连接,创建Connection时,指定host,port参数,认证用户,密码及用户对应数据库
db = client.mydb
#连接需要的数据库

以上是安装与启动的学习记录。

作者:xueyulong

链接:http://www.jianshu.com/p/a62ccbdbb5a8

來源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容