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、停止firewallsystemctl 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