侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

mongodb 3.4.5安装及安全配置

2023-11-05 星期日 / 0 评论 / 0 点赞 / 28 阅读 / 4505 字

一、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

广告 广告

评论区