测试版本:3.4.7 ,4.0.6
打开 mongo shell :(可将 mongo 的 bin 目录配置到环境变量中的 path 中直接启动 mongo)
C:\Users\xiaohao>mongo
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.7
Server has startup warnings:
2019-08-29T10:56:07.116+0800 I CONTROL [initandlisten]
2019-08-29T10:56:07.116+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-08-29T10:56:07.117+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2019-08-29T10:56:07.117+0800 I CONTROL [initandlisten]
>
推荐使用配置文件方式,易排查,有配置记录,利于后期维护
use admin
switched to db admin
> db.createUser(
{
user: "myUserAdmin",
pwd: "passwd",
roles: ["userAdminAnyDatabase"]
}
)
Successfully added user: { "user" : "myUserAdmin", "roles" : [ "userAdminAnyDatabase" ] }
##登录测试
> db.auth("myUserAdmin","passwd")
1
##失败返回0
以管理员方式启动 cmd
删除以前的 MongoDB 服务
sc delete MongoDB
打开计算机的服务管理界面,右键停止,刷新,就会发现该服务已经没了,关闭该界面。
创建带有安全认证的 MongoDB 服务
sc create MongoDB binpath="E:\Mongo4.0\bin\mongod.exe --dbpath E:\Mongo4.0\data --logpath E:\Mongo4.0\log\mongodb.log --logappend --service"
启动服务
net start mongodb
以管理员方式启动 cmd
删除以前的 MongoDB 服务
sc delete MongoDB
打开计算机的服务管理界面,右键停止,刷新,就会发现该服务已经没了,关闭该界面
在安装目录上添加配置文件
systemLog:
destination: file
path: E:\Mongo4.0\log\mongodb.log
storage:
dbPath: E:\Mongo4.0\data
engine: wiredTiger
wiredTiger:
engineConfig:
cacheSizeGB: 5
net:
bindIp: 127.0.0.1
port: 27017
security:
authorization: enabled
根据配置文件启动 mongo
E:\Mongo4.0\bin\mongod.exe --config "E:\Mongo4.0\mongod.cfg" --install
启动 mongoDB 服务
net start mongodb
启动安全认证之后无登录进行连接:发现无权限查看数据库
C:\Users\xiaohao>mongo
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.7
###无权限查看数据库
> show dbs
2019-08-29T12:21:17.295+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
退出 shell 进行用户登录:
mongo -u myUserAdmin -p passwd localhost:27017/admin
登录成功返回信息,并能进行数据的操作
C:\Users\xiaohao>>mongo -u myUserAdmin -p passwd localhost:27017/admin
MongoDB shell version v3.4.7
connecting to: mongodb://localhost:27017/admin
MongoDB server version: 3.4.7
###测试是否有权限查看数据库
> show dbs
admin 0.000GB
local 0.000GB
test 0.000GB
开启安全认证之后,数据库连接工具要输入用户名和密码
C:\WINDOWS\system32>net start MongoDB
MongoDB 服务正在启动 .
MongoDB 服务无法启动。
发生服务特定错误:100
请键入 NET HELPMSG 3547 以获取更多的帮助
C:\WINDOWS\system32>net start mongodb
服务没有响应控制功能。
请键入 NET HELPMSG 2186 以获得更多的帮助。
出现这个问题一般是路径有问题。
1)请注意你所有的路径没有错,包括 mongod 所在路径,日志所在路径等;
2)不要加入多余的“\”,如“D:\MongoDB\Data”这个,千万不要写成“D:\MongoDB\Data\”。
C:\WINDOWS\system32>net start mongodb
发生系统错误 1058。
无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。
C:\WINDOWS\system32>sc delete MongoDB
[SC] DeleteService 失败 1072:
指定的服务已标记为删除
C:\WINDOWS\system32>sc create MongoDB binpath="E:\MongoDB\bin\mongod.exe --dbpath E:\MongoDB\data --logpath E:\MongoDB\logs\mongodb.log --logappend --auth --service"
[SC] DeleteService 失败 1072:
指定的服务已标记为删除