用MongoDB一定要开用户认证。
一些可视化的软件已经加入了这个认证,连接数据库时容易报错。
注:网上的一些文章比较零散;找起来不方便。小白的我找了多久,看了几篇文章才弄明白。所以下面是我的学习记录,方便自己。因学习Python要用到MongoDB,所以后面以Python操作。
1. 下载mongoDB
下载社区版(免费)
安装就不记录了。
我的安装路径是:D:\Program Files\MongoDB\Server\3.4\
下面有用到安装路径的地方,请对照自己的路径。
2. 关于启动MongoDB
有几种方法,相同的地方都是:
在你想放置数据的地方,新建文件夹(MongoDB自身不会新建,只会报错)
我用的路径是:H:\MongoDB\data\db (不一定按这个,只建议最后一个文件夹用db,以记录这是数据库文件夹)
方法1:
使用CMD(命令提示符,不知道请问度娘),打开安装路径
下面中用了一个小技巧: 在填写了文件夹第一个字母后用TAB键,选择你需要的名字。
注:一些文章中要把路径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/
如果出现下面提示,恭喜你,MongoDB已经启动了。 如果没有,要查看CMD中的提示,看那里错了。
关闭MongoDB 比较简单,在刚刚的CMD中按下Ctrl+C
这个方法比较简单,但每次使用就很麻烦。每次都要用CMD打入指令。同时日志不方便保存。
方法2:
安装为Windows服务,之后可以通过服务功能(win+r 打开运行 输入 services.msc)打开,也可以在CMD中用net start MongoDB 开启 ;net stop MongoDB 关闭
注意:CMD需要以管理员身份运行
注意:CMD需要以管理员身份运行
注意:CMD需要以管理员身份运行
操作如下,在数据库路径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中进入安装目录
打入
mongod --config "D:\Program Files\MongoDB\Server\mongo.conf" --install --serviceName "MongoDB"
在服务功能 启动MongoDB 或者在CMD中打入net start MongoDB
最后,用浏览器测试服务是否启动:
3. 初步使用MongoDB
A.连接数据库
使用CMD
如果在环境变量加入了安装路径。就直接打入
mongo
不然就要用CD进入安装路径
再打入mongo了
也可以在安装目录下
启动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]
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。
用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
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。