前提:
mongdb下载地址:http://www.mongodb.com/download-center/community
选择windows版本下载exe
安装:
1、点击进行安装, 选择custom(自定义)进行安装
2、这里我选择location(安装位置)为:D:\Program Files\MongoDB\Server\4.2,这个目录是我建的,如果不更改默认是再C:\Program Files\MongoDB\Server\4.2\
3、勾选Install MongoDB as a Service后会在安装后启动运行一个MongDB服务,Data Directory为数据存储的路径,log Directory为日志存储的路径,只要安装后就会启动
4、将Install MongoDB Compass选项去掉勾选,安装的话会很大,这里也并不需要compass,如果需要安装可以到官网下载单独安装
5、点击Install
6、完成
7、依据上面的方法已经可以本地连接mongdb数据库了,但是我们想要其他的服务器访问此mongodb,这就需要我们修改mongod.cfg的配置参数了,找到windows的服务,查看MongoDB Server的属性,如下图:
可以看到执行的命令为下面的语句,它是从D:\Program Files\MongoDB\Server\4.2\bin\mongod.cfg读取配置来作为开启MongDB服务的参数:
"D:\Program Files\MongoDB\Server\4.2\bin\mongod.exe" --config "D:\Program Files\MongoDB\Server\4.2\bin\mongod.cfg" --service
8、打开D:\Program Files\MongoDB\Server\4.2\bin\mongod.cfg,配置如下参数(各参数的意义请查看https://docs.mongodb.com/manual/reference/configuration-options/),这里讲解一下配置其他服务器访问的参数和安全选项的参数:
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: D:\Program Files\MongoDB\Server\4.2\data\db
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: D:\Program Files\MongoDB\Server\4.2\log\mongod.log
# network interfaces
net:
port: 27017
# 将bindIp改为0.0.0.0,则其他所有的服务器都可以访问或者指定固定的Ip访问如:
# 192.168.1.2;192.168.1.56,多个ip使用;隔开
bindIp: 0.0.0.0
# 此为安全参数,如果没有此参数配置则其他服务器可以通过ip和端口号直接访问到此mongdb,这样是不安全的,配置了此参数后只有通过用户名和密码访问此mongodb数据库
security:
authorization: enabled
#processManagement:
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
完成上面的步骤后, 重启mongo服务,然后需要在mongdb的admin库中创建一个超级用户,来进行对mongodb的连接
打开mongo shell, 按照下面操作:
> use admin #进入admin表
> db.createUser({user:"myadmin", pwd:"password", roles:[{role:"root",db:"admin"}]})
其中myadmin为创建的用户名,pwd为创建用户的密码,roles中root为最高的root权限,admin为创建用户所属的库。
注意:admin库下面创建的用户可以访问mongodb中任何其他数据库,当然有也有对应的权限,如上面的root权限。
下面操作为验证用户是否创建成功:
# 查看用户是否创建成功
>show users
# 输出以下内容表示添加成功
{
"_id" : "admin.myadmin",
"user" : "myadmin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
注意:
如果再次进入admin数据库后,想要操作修改需要先权限认证,即:
db.auth("username", "password")
如果返回为1,怎验证成功,然后再执行其他操作(如:创建其他用户),返回0代表验证失败。
9、生产环境的话可能会开启防火墙,需要开放端口,添加入站规则,开放mongodb的连接端口,默认是27017
结尾:
可以通过另一台服务器使用Robo 3T测试是否连接到, Address为mongodb所在服务器的地址,27017为开放的端口号
勾选Perform authentication,填写admin数据库,并填写用户名密码,验证机制默认即可。
推荐一下python程序员常用功能的一个仓库(定期有新模块更新,求星):https://github.com/Chenhonli/python-frequently-feature