MongoDB 远程连接

2023-05-09 16:39:25 浏览数 (1)

之前介绍过 MongoDB 的安装与使用,大多都是本地应用,但是 MongoDB 本身支持网络访问,本文记录开启与测试方法。

开启网络访问权限

默认配置

MongoDB 支持网络访问,但是出于安全考虑,默认没有开启其他 IP 的主机访问权限。

如果需要跨主机访问 MongoDB 需要专门开启相关功能。

开启权限

本质上,目标是向 MongoDB 开启命令中加入允许远程访问的 IP 和端口

配置文件

网上有说法配置 mongod.cfg 文件, 进入软件安装的bin位置: bin

代码语言:javascript复制
# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1

我们可以进行 portbindIp 设置,

  1. 自定义端口需保证对应端口未被占用且端口开放;
  2. ip 权限设置,分为两种设置,指定唯一端口以及全部开放,但暂不支持两种方式掺杂使用

指定多个端口连接,中间用“,”分割

代码语言:javascript复制
#举例
bindIp: 127.0.0.1,127.0.0.2

无端口限制设置有两种

  • 第一种情况
代码语言:javascript复制
bindIp: 0.0.0.0,::
  • 第二种情况:直接添加(设置此种可以去掉bindIp)
代码语言:javascript复制
bind_ip_all: true 

注意事项:修改配置文件后一定要重启服务:

  • 启动命令
代码语言:javascript复制
net start MongoDB
  • 停止命令
代码语言:javascript复制
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

0 人点赞