设为首页 收藏本站
查看: 1157|回复: 0

[经验分享] Ubuntu 16.0.4 mongodb 3.*默认地址安装及权限配置

[复制链接]

尚未签到

发表于 2018-10-25 06:07:41 | 显示全部楼层 |阅读模式
  1.导入软件源公钥
  #apt-key adv   --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
  2.为MongoDB创建软件源list文件
  #echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
  3.更新并安装
  #apt-get update    更新软件源
  #apt-get install -y mongodb-org                  安装最新稳定版的MongoDB  
  #apt-get install -y mongodb-org=3.2.8 mongodb-org-server=3.2.8 mongodb-org-shell=3.2.8 mongodb-org-mongos=3.2.8 mongodb-org-tools=3.2.8    安装特定版本的MongoDB
  4.为mongod赋予执行权限
  #chmod  -R  600  /var/lib/mongodb                     -R 递归
  #chown -R  mongodb:mongodb /var/lib/mongodb        修改文件的拥有者和组
  5.开启mongod查看
  /var/lib/mongodb#service mongod start
  #ps -ef |grep mongodb 查看进程-是否成功启动
  #/var/lib/mongodb#service mongod stop 停止
  #/var/lib/mongodb#service mongod restart 重启
  6.Robo测试连接是否通过
DSC0000.jpg

  点击Test ,出现2个 如下图:
DSC0001.jpg

  7.连接通过后,进行创建用户
  方法一:在Robo客户端设置
DSC0002.jpg

  use admin
  //创建角色(要在admin下)
  db.createRole({role:'sysadmin',roles:[],
  privileges:[
  {resource:{anyResource:true},actions:['anyAction']}
  ]})
  use zx
  // db: "admin"强制
  db.createUser(
  {
  user: "username",
  pwd: "password",
  roles:
  [
  {
  role: "sysadmin",
  db: "admin"
  }
  ]
  }
  )
  方法二:在linux环境下操作
  服务启动后
  /var/lib/mongodb#mongod      开启MongoDB管理控制台
  /var/lib/mongodb#mongo       进入mongo数据库
  

> use admin  switched to db admin
  
> db.createRole({role:'sysadmin',roles:[],
  privileges:[
  {resource:{anyResource:true},actions:['anyAction']}
  ]})
  >db.createUser(
  {
  user: "username",
  pwd: "password",
  roles:
  [
  {
  role: "sysadmin",
  db: "admin"
  }
  ]
  }
  
)
  

  8.用MongoDB客户端Robo连接,查看username和password连接是否成功
DSC0003.jpg

  勾选,输入数据库名称、username 、password 点击左下角的Test,出现2个√,说明新建库和用户成功
DSC0004.jpg

  ps :MongoDB修改用户的密码:db.changeUserPassword('username','new password')  ,用db.addUser也可以修改密码,当用户名相同时,会修改密码
  这种方式连接没有通过auth权限验证,几乎没有安全性可言。设置权限连接后,当没有用户名和密码时,外部无法访问数据库,因此,权限设置很重要
  重点:权限连接设置
  1.关闭mongod服务,修改mongodb配置文件
  #cd /etc/mongod.conf    文件内容:
  

#Where and how to store data.  
storage:
  dbPath: /var/lib/mongodb
  journal:
  enabled: true
  
#engine:
  
#mmapv1:
  
#wiredTiger:
  
#where to write logging data.
  
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log
  
#network interfaces
  
net:
  port: 27017      #将27017修改成自己设置的端口号,不要用默认的,同时注意要避免与其他程序端口冲突
  
#bindIp: 127.0.0.1  #可以将允许连接的ip添加进来,指定可以访问数据库的ip,用,隔开,也可以注释掉
  
#processManagement:
  
security:
  authorization: enabled  #权限验证开启  有些是 auth = true 效果是一样的
  

  2.重启mongod服务 进入mongod目录:
  /var/lib/mongodb#./mongod --dbpath=/path  --logpath=/mongo.log --logappend --port 端口号 --auth
  地址按照自己实际的来
  或者:./mongod -f /etc/mongod.conf&
  看具体情况吧,不知道什么原因,我安装的mongodb缺少一些东西,所以不能service mongod start 和带路径的方式开启 ,我的启动方式:/usr/bin#./mongod -f /etc/mongod.conf&
  /usr/bin 这个目录通过find / -name mongd 的方式找到的
  3.用MongoDB客户端Robo连接,查看权限验证是否开启成功

  点击Authentication   不勾选,如图:
DSC0005.jpg

  点击左下角的Test ,出现下图则表示权限验证开启成功:
DSC0006.jpg

  点击Authentication   勾选,输入数据库名称、username、password,点击左下角Test:
DSC0007.jpg

  连接成功,即权限连接设置成功。
  ps :需要导入数据的话,可以先关闭权限连接,导入后再开启。
  由于修改了端口,导入时必须带上端口号:
  mongorestore  -h host --port 端口号 -u username -p passw -d 指定数据库名称 --dir 需要导入的数据所在的目录
  若出现权限方面的报错,可以再加上 --authenticationDatabase 指定的数据库名称
  当MongoDB启动时,在数据目录下会产生一个lock文件,当异常退出或关闭时,lock文件会禁止启动。
  最好的处理方式:
  #ps -ef | grep mongo
  #kill -2或者-15 mongo进程号
  #mongod --repair
  #rm -rf /var/lib/mongodb/mongod.lock
  另外mongodb加入了SCRAM-SHA-1校验方式:
  

     >use admin  switched to db admin
  >var schema = db.system.version.findOne({"_id":"authSchema"})
  >schema.currentVersion = 3
  3
  >db.system.version.save(schema)
  WriteResult({"nMatched":1,"nUpserted":0,"nModified":1})
  

  也可以Robo连接后右键 edit document 进行修改
  最好的关闭步骤:
  开启服务:mongod -f mongod.conf文件的路径
  登录数据库:mongo --port     端口号

  use admin
  db.auth('username','password') --权限连接
  返回1则表示连接成功
  db.shutdownServer();   关闭MongoDB服务
  exit   退出
  其余关闭方法:
  方法一:#mongod --shutdown  --dbpath /var/lib/mongob    干净的关闭MongoDB服务
  方法二:#ps -ef | grep mongo     # kill 18288
  给 mongod 进程发送 SIGINT 或 SIGTERM 信号, 即 "kill -2 PID," 或者 “kill -15 PID“。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-626028-1-1.html 上篇帖子: 爱创课堂每日一题七十九天- 说说mongoDB和MySQL的区别? 下篇帖子: MongoDB权限修改后,启动Java服务后台报错
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表