chinaab 发表于 2018-10-25 06:07:41

Ubuntu 16.0.4 mongodb 3.*默认地址安装及权限配置

  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-R600/var/lib/mongodb                     -R 递归
  #chown -Rmongodb: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测试连接是否通过

  点击Test ,出现2个√ 如下图:

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

  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连接是否成功

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

  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   不勾选,如图:

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

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

  连接成功,即权限连接设置成功。
  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]
查看完整版本: Ubuntu 16.0.4 mongodb 3.*默认地址安装及权限配置