一、yum安装mongodb vi /etc/yum.repos.d/mongodb-3.4.repo [mongodb-org-3.4] name=MongoDB Repository baseur
一、yum安装mongodb
vi /etc/yum.repos.d/mongodb-3.4.repo
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
yum install -y mongodb-org
service mongod start
service mongod stop
service mongod restart
二、源码安装
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.5.tgz
tar zxvf mongodb-linux-x86_64-3.4.5.tgz
mv mongodb-linux-x86_64-3.4.5 /usr/local/mongodb
export PATH=/usr/local/mongodb/bin:$PATH
mkdir -p /data/mongodb
useradd mongo
chown mongo.mongo /data/mongodb
echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
echo "never" > /sys/kernel/mm/transparent_hugepage/defrag
ulimit -HSn 65535
su mongo
/usr/local/mongodb/bin/mongod --dbpath=/data/mongodb
这样就以普通用户mongo身份运行了mongodb
三、安全认证设置
新建用户
/usr/local/mongodb/bin/mongo
>user admin
>db.createUser({user:"root",pwd:"uiop789",roles:[{role:"userAdminAnyDatabase",db:"admin"},{role:"dbAdminAnyDatabase",db:"admin"},{role:"readWriteAnyDatabase",db:"admin"}]})
root:只在admin数据库中可用。超级账号,超级权限
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
启用认证
/usr/local/mongodb/bin/mongod --dbpath=/data/mongodb --auth
1,创建连接mongo shell时进行授权,指定-u <username>, -p <password>, and the --authenticationDatabase <database>
mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"
2,mongo shell登录后认证
use admin
db.auth("root","uiop789")
输出1,即认证成功
>show dbs 查看库
>db.system.users.find() 查询所有用户
>show users 查看用户
>db.system.users.remove("user":"username") 删除用户username
>db.changeUserPassword("root","newpass") 修改用户密码
>use admin 切换到admin
>db.shutdownServer() 关闭mongodb
四、阿里的一个配置模板
mongod.conf内容 (将$mymongo替换成你的工作目录)
systemLog:
destination: file
logAppend: true
logRotate: rename
path: $mymongo/logs/mongod.log
timeStampFormat: iso8601-local
traceAllExceptions: false
verbosity: 0
processManagement:
fork: true
pidFilePath: $mymongo/logs/mongod.pid
net:
#bindIp: 127.0.0.1
port: 3001
http:
enabled: false
maxIncomingConnections: 1000
unixDomainSocket:
enabled: false
operationProfiling:
mode: slowOp
slowOpThresholdMs: 100
security:
authorization: enabled
keyFile: $mymongo/etc/keyfile
javascriptEnabled: false
replication:
oplogSizeMB: 5120
replSetName: myreplset
storage:
dbPath: $mymongo/data
directoryPerDB: true
syncPeriodSecs: 60
engine: wiredTiger
journal:
enabled: true
commitIntervalMs: 100
wiredTiger:
engineConfig:
cacheSizeGB: 4
mongod -f /etc/mongodb.conf --dbpath=/data/mongodb --auth