mongoDB是没有系统默认用户的,安装上后可以直接连接,3.4版本有默认两个数据库。admin和local。
连接上mongo之后,使用哪个数据库就用
use ${database} 来切换到哪个数据库,并且mongoDB的用户是跟着数据库走的,创建用户时需指定数据库。
在mongoDB的安装目录下创建data logs 目录和mongo.conf文件
3.~的版本我用的是mongo.conf配置文件来配置,第一个和第二个配置的data目录和logs目录是没有的,需要自己创建,
#数据库路径
dbpath=D:\Application\MongoDB\data
#日志输出文件路径
logpath=D:\Application\MongoDB\logs\mongo.log
#错误日志采用追加模式
logappend=true
#启用日志文件,默认启用
journal=true
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=true
#端口号 默认为27017
port=27017
然后执行命令来是配置生效
mongod.exe --config "D:\Application\MongoDB\mongo.conf" --install
连接上mongoDB,一般默认的管理员是
use admin
db.createUser(
{
user:"root",
pwd:"root",
roles:[{role:"root",db:"admin"}]
}
)
创建完成之后,在admin下,使用db.system.users.find()来查看当前用户的一些信息,可以看到认证方式是SCRAM-SHA-1,记住这个,之后连接时要选择它
{ "_id" : "admin.root", "userId" : BinData(4,"JOOYx9UPTQaS18xowfVsLg=="), "user" : "root", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "t5BG5AaAvSIBsdcoEiNiLg==", "storedKey" : "zRMCfNcil8A99Xn/+y1irEYAMMw=", "serverKey" : "wgKaO6f2uyihsBn4Kw5EfEfMWIk=" } }, "roles" : [ { "role" : "root", "db" : "admin" } ] }
然后就可在mongo.conf中添加认证
#数据库路径
dbpath=D:\Application\MongoDB\data
#日志输出文件路径
logpath=D:\Application\MongoDB\logs\mongo.log
#错误日志采用追加模式
logappend=true
#启用日志文件,默认启用
journal=true
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=true
#端口号 默认为27017
port=27017
#开启认证
auth=true
添加完毕在电脑的服务与应用程序中重启启动服务
之后再次连接mongodb,可以看到,如果没有在指定数据库下使用用户名和密码进行认证登录,就会出现Unauthorized的错误信息
使用工具登录
连接成功