如何遠程連接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:[email protected]:27017/test")

from  pymongo import MongoClient
client = MongoClient("mongodb://onion:[email protected]: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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章