安装MongoDB的步骤:
1.在需要放置MongoDB数据库的磁盘下新建MongoDB目录
2.创建文件夹:data,用来存放数据库的数据文件
3.创建文件夹:log,用来存放数据库的日志文件
4.创建文件夹:bin,用来存放数据库的可执行文件
5.创建文件夹:conf,用来存放数据库的配置文件,其中配置文件名为mongodb.conf,内容为以下:
port = 27017
dbpath = E:\MongoDB\data\db
logpath = E:\MongoDB\log\mongodb.log
serviceName = MongoDB
serviceDisplayName = MongoDB
bind_ip = 127.0.0.1
directoryperdb = true
6.官网下载并解压MongoDB(本示例用的是二进制包),把整个bin目录内容复制到新建的目录MongoDB目录bin中,进入bin目录中
7.用管理员身份开启cmd窗口并定位到bin目录下,输入以下命令来安装MongoDB,其中mongod.exe为数据库的执行程序,
部署就是用它,--install就是注册了一个名为MongoDB的windows服务,其名称就是配置文件中serviceDisplayName的值
命令内容:mongod.exe -f E:\MongoDB\conf\mongodb.conf --install
8.在命令行中输入以下命令来启动数据库
命令内容:net start MongoDB
9.再输入命令:mongo.exe,启动客户端来连接数据库
10.连接后在命令行中输入use admin,切换到admin数据库中
11.在命令行中输入以下命令,来创建admin数据库的用户,用户名和密码为admin,角色:userAdminAnyDatabase,命令内容:
db.createUser({user:"admin",pwd:"admin",customData:"admin DataBase",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
执行后的效果:
> use admin
switched to db admin
> db.createUser({user:"admin",pwd:"admin",customData:{title:"admin dataBase"},roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
Successfully added user: {
"user" : "admin",
"customData" : {
"title" : "admin dataBase"
},
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
12.在命令行中ctrl+c ,退出数据库连接,效果:
> ^C
13.在命令行中键入:net stop mongodb ,来关闭mongodb数据库window服务
MongoDB 服务正在停止.
MongoDB 服务已成功停止。
14.修改MongoDB的conf目录下的配置文件mongodb.conf最后一行加入:auth = true,来开启权限认证,完整内容如下
port = 27017
dbpath = E:\MongoDB\data\db
logpath = E:\MongoDB\log\mongodb.log
serviceName = MongoDB
serviceDisplayName = MongoDB
bind_ip = 127.0.0.1
directoryperdb = true
auth = true
15.保存后在命令行中输入命令:net start MongoDB ,来启动MongoDB的windows服务
MongoDB 服务正在启动 ..
MongoDB 服务已经启动成功。
16.在命令行中输入命令:mongo来连接MongoDB
C:\Windows\system32>mongo(本人是在win7环境变量中配置了MongoDB的bin目录,所以在任何磁盘下都可以访问到MongoDB的bin下面的执行程序)
MongoDB shell version v3.4.5
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.5
>
17.输入命令use admin 切换到admin数据库中,再输入命令show dbs 回车,提示没认证说明开启认证了:
C:\Windows\system32>mongo
MongoDB shell version v3.4.5
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.5
> use admin
switched to db admin
> show dbs
2018-03-04T23:08:49.952+0800 E QUERY [thread1] Error: listDatabases failed:{
"ok" : 0,
"errmsg" : "not authorized on admin to execute command { listDatabases:
1.0 }",
"code" : 13,
"codeName" : "Unauthorized"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:62:1
shellHelper.show@src/mongo/shell/utils.js:769:19
shellHelper@src/mongo/shell/utils.js:659:15
@(shellhelp2):1:1
18.输入命令:db.auth("admin","admin"),来认证admin数据库管理员,显示1为认证成功
> db.auth("admin","admin")
1
19.输入命令:use cloud, 切换到cloud数据库,存在cloud就直接切换,不存在则创建cloud后再切换到cloud
> use cloud
switched to db cloud
>
20.输入命令:db.createUser({user:"pda",pwd:"pda",customData:{title:"cloudStorager DataBase"
> use cloud
switched to db cloud
> db.createUser({user:"pda",pwd:"pda",customData:{title:"cloudStorager DataBase"},roles:[{role:"dbOwner",db:"cloud"}]})
显示成功,则在cloud数据库创建了pda这个用户,和角色为dbOwner:
Successfully added user: {
"user" : "pda",
"customData" : {
"title" : "cloudStorager DataBase"
},
"roles" : [
{
"role" : "dbOwner",
"db" : "cloud"
}
]
}
>
21.总结:首次启动MongoDB通过在admin数据库创建了的admin这个用户是用来创建与管理用户的,其实就是个数据库管理员,
接着再次启动MongoDB并开启认证,然后在admin数据库中通过db.auth("admin数据库的用户名","admin数据库的密码")进行认证后,
通过use 自定义数据库名(示例是cloud,数据库不存在就创建)来切换到cloud数据库(一般这个才是真正开放给外部用的),然后通过db.createUser({user:"pda",pwd:"pda",customData:{title:"cloudStorager DataBase"},roles:[{role:"dbOwner",db:"cloud"}]})
给这个cloud这个数据库创建了用户和对应的角色。