之前介绍过 MongoDB 的安装与使用,大多都是本地应用,但是 MongoDB 本身支持网络访问,本文记录开启与测试方法。
开启网络访问权限
默认配置
MongoDB 支持网络访问,但是出于安全考虑,默认没有开启其他 IP 的主机访问权限。
如果需要跨主机访问 MongoDB 需要专门开启相关功能。
开启权限
本质上,目标是向 MongoDB 开启命令中加入允许远程访问的 IP 和端口
配置文件
网上有说法配置 mongod.cfg
文件, 进入软件安装的bin位置: bin
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1
我们可以进行 port 和 bindIp 设置,
- 自定义端口需保证对应端口未被占用且端口开放;
- ip 权限设置,分为两种设置,指定唯一端口以及全部开放,但暂不支持两种方式掺杂使用
指定多个端口连接,中间用“,”分割
代码语言:javascript复制#举例
bindIp: 127.0.0.1,127.0.0.2
无端口限制设置有两种
- 第一种情况
bindIp: 0.0.0.0,::
- 第二种情况:直接添加(设置此种可以去掉bindIp)
bind_ip_all: true
注意事项:修改配置文件后一定要重启服务:
- 启动命令
net start MongoDB
- 停止命令
net stop MongoDB
命令行配置
如果没有找到文件 mongo.conf
也可以在命令行上加入配置
添加允许访问的客户端主机 IP
代码语言:javascript复制mong0 --host 198.51,100,1
如果允许所有 IP 访问,添加参数:
代码语言:javascript复制mongod --bind_ip_all
连接测试
配置完成后需要测试远程客户主机是否能成功访问:
代码语言:javascript复制import mtutils as mt
from pymongo import MongoClient
conn = MongoClient('192.168.1.55', 27017)
print(conn)
print(conn.list_database_names())
pass
输出
代码语言:javascript复制MongoClient(host=['192.168.1.55:27017'], document_class=dict, tz_aware=False, connect=True)
['admin', 'config', 'foobar', 'local']
能输出数据库名字就说明链接成功~
参考资料
- https://blog.csdn.net/qq_38223945/article/details/106304118
- https://blog.csdn.net/QQljh123456/article/details/121995898
- https://cloud.tencent.com/developer/article/2125324