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