如何远程连接mongo数据库

mongo用户创建

创建admin用户

use admin 

db.createUser({user:"admin",pwd:"admin",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})

 

普通用户创建

use boss

db.createUser(

{

user: "onion",

pwd: "onion",

roles: [

{role: "readWrite",db :"boss"}

]

}

)

 

配置文件修改

#路径 /etc/mongod.conf



# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /data/mongodb/logs/mongod.log  #/var/log/mongodb/mongod.log

# Where and how to store data.
storage:
  dbPath: /data/mongodb/data #/var/lib/mongo
  journal:
    enabled: true

processManagement:
  fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo

net:
  port: 27017
  bindIp: 0.0.0.0

security:
  authorization: enabled

重启mongd服务

1. kill   -9  原有进程

2.  启动 # mongod --config /etc/mongod.conf

 

客户端连接

#终端连接
mongo ip:port/dbName -u user -p password
mongo 192.168.1.20:27017/boss -u onion -p onion 


#pymongo 
 from pymongo import MongoClient
 client=MongoClient("mongodb://user:userpwd@xxx.xxx.xxx.xxx:27017/test")

from  pymongo import MongoClient
client = MongoClient("mongodb://onion:onion@192.168.1.20:27017/boss")
collection = client["boss"]["python"]
collection.insert(item)

如果连接不上检查主机防火墙

centos 防火墙检查 

1、查看防火墙状态

firewall-cmd --state

2、停止firewall

systemctl stop firewalld.service

3、禁止firewall开机启动

systemctl disable firewalld.service 

 

防火墙开放27017端口

命令:iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT

Mongo角色

  • Read:允许用户读取指定数据库
  • readWrite:允许用户读写指定数据库
  • dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
  • userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
  • clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
  • readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
  • readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
  • userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
  • dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
  • root:只在admin数据库中可用。超级账号,超级权限

文章参考:

https://blog.csdn.net/qq_32502511/article/details/80619277

 

DBEExpression是一个强大的开源工具,用于管理各种类型的数据库,包括SQL、NoSQL和其他数据库系统。如果用户尝试在DBEExpression中连接MongoDB数据库并遇到“没有Mongo”提示,这可能是由于几个原因: ### 可能的原因及解决方案: 1. **DBEExpression版本问题**:DBEExpression需要支持特定版本才能正常连接到MongoDB。确认当前使用的DBEExpression版本是否已适配最新版的MongoDB。可能需要更新DBEExpression至最新稳定版。 - **解决步骤**: - 访问DBEExpression的官方网站或GitHub页面查看最新的发布信息。 - 根据说明下载并安装最新版本。 - 重启软件,尝试再次连接MongoDB。 2. **配置错误**:在连接MongoDB之前,确保已经正确配置了DBEExpression的连接设置,包括服务器地址、端口、数据库名等基本信息。 - **解决步骤**: - 打开DBEExpression界面,在数据库连接部分找到MongoDB选项。 - 输入正确的MongoDB服务器地址和端口号,确认数据源选择无误。 - 遵循界面指引输入登录凭据,如有必要,启用SSL连接安全传输。 3. **驱动未安装或兼容性问题**:DBEExpression的MongoDB连接功能依赖于特定的驱动程序。确保MongoDB官方提供的驱动库在用户的系统上已正确安装,并与DBEExpression版本兼容。 - **解决步骤**: - 检查MongoDB官网文档或社区资源,查找适用于DBEExpression版本的MongoDB驱动。 - 下载并按照指示将驱动文件添加到系统的类路径中。 4. **防火墙或网络限制**:有时,网络环境的防火墙设置或DNS解析问题可能导致无法连接到远程MongoDB服务。 - **解决步骤**: - 检查本地网络设置和防火墙规则,确保它们允许访问目标MongoDB服务器的IP地址和端口。 - 如果使用的是动态DNS解析,确保域名指向正确的IP地址。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值