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

[经验分享] linux安装mongodb(设置非root用户和开机启动)

[复制链接]

尚未签到

发表于 2017-12-16 15:32:58 | 显示全部楼层 |阅读模式
  官网地址:https://www.mongodb.com/
  在官网上选择不同的linux系统得到不同的下载地址,我们用的下载地址是:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.3.tgz
DSC0000.jpg

  1.mongodb的安装及连接
  cd opt/
  wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.3.tgz    #下载
  tar zxvf mongodb-linux-x86_64-rhel62-3.4.3.tgz   #解压
  cd ../
  mkdir -p /usr/local/mongodb   #创建mongodb的安装目录
  mv /opt/mongodb-linux-x86_64-rhel62-3.4.3 /usr/local/mongodb  #移动解压文件到安装目录
  mkdir -p  /data/mongodb/data   #创建mongodb数据库存放路径
  mkdir -p  /data/mongodb/log    #创建mongodb日志存放路径
  touch/data/mongodb/log/mongodb.log    #创建mongodb日志文件
  /usr/local/mongodb/bin/mongod –dbpath=/data/mongodb/data –logpath= /data/mongodb/log/mongodb.log –logappend –port 27017 --fork  
  #启动mongodb服务
  (注:mongodb默认不需要输入用户名和密码,出于安全考虑,我们可以设置用户名和密码,详见mongodb用户权限管理)
  ./usr/local/mongodb/bin/mongo   #进入mongodb数据库控制台
  show dbs#将显示默认数据admin和local
  db.shutdownServer()   #关闭mongodb服务
  exit#退出控制台   
  2.参数解释
  启动服务时用到的如下:
  --dbpath 数据库路径
  --logpath 日志文件路径
  --logappend 日志在日志文件末尾追加
  --port 启用的端口号【可不写,默认是27017】
  --fork 让mongodb服务在后台运行
  3.创建配置文件及脚本文件
  为了更方便的配置及启动数据库,我们可以创建配置文件及脚本文件
  touch /usr/local/mongodb/mongodb.conf  #创建配置文件
  vi /usr/local/mongodb/mongodb.conf   #编辑
  >
  #端口
  port=27017
  #数据文件存放目录
  dbpath= /data/mongodb/data
  #日志文件路径
  logpath=/data/mongodb/log/mongodb.log
  #使用追加的方式写日志
  logappend=true
  #以守护程序的方式启用,即在后台运行
  fork=true
  #最大同时连接数 默认2000
  maxConns=5000
  #允许所有IP访问,如果要限制访问,可指定以逗号分隔的ip地址
  bind_ip=0.0.0.0
  #是否启用身份认证
  auth=false
  nohttpinterface=true
  rest=false
  Esc + :wq!  #保存并退出
  touch start.sh  #创建启动脚本文件
  vi start.sh #编辑
  >
  #!/bin/sh
  bin/mongod -f mongodb.conf
  Esc + :wq!  #保存并退出
  chmod u+x start.sh  #赋予权限
  ./start.sh  #执行脚本启动服务
  4.非root用户安装mongodb【出于安全考虑】
  日常操作中为了避免一些误操作,更加安全的管理系统,通过使用的用户身份都为普通用户,而非root。当需要执行一些管理员命令操作时,再切换成root用户身份去执行。
  linux切换用户知识补充:
  A.su - (su为switch user,即切换用户的缩写),格式:su -l username(-l为login,即登录的缩写),-l可以将l省略掉,所以此命令常写为su - username。
  如果不指定username(用户名),默认即为root,所以切换到root身份的命令即为:su - root 或是直接su -。
  通过命令exit或者logout或者ctrl+d返回原用户身份。
  B.通过su切换用户还可以直接使用命令su username,与su - username的不同之处如下:
  su - username切换用户后,同时切换到新用户的工作环境中。
  su username切换用户后,不改变原用户的工作目录及其他环境变量目录。
  创建mongo用户:
  useradd mongo
  passwd mongo
  一.从root切换到mongo身份,执行:su - mongo,然后执行以上mongodb的安装流程即可。
  二.现在root用户下执行以上mongodb的安装流程,然后给mongodb的安装目录和数据库目录指定mongo用户,再切换到mongo用户,执行数据库连接即可。
  chown -R mongo:mongo /usr/local/mongodb
  chown -R mongo:mongo /data/mongodb/
  如果mongodb服务启动失败,则我们可以查看/data/mongodb/log/mongodb.log日志信息,以找到错误原因来解决问题。
  5.远程连接mongodb失败
  远程连接失败可能有两个原因:
  A.mongodb的配置文件中的bind_ip默认为127.0.0.1,默认只有本机可以连接。解决方案:将bind_ip配置为0.0.0.0,表示接受任何ip的连接;如果要限制访问,可以指定以逗号分隔的多个ip地址。
  B.防火墙阻止了27017端口。解决方案:
  vi /etc/sysconfig/iptables         // 将27017端口加入防火墙
  service iptables restart     // 重启防火墙
  或者:
  Linux关闭防火墙命令
  1) 永久性生效,重启后不会复原
  开启:chkconfig iptables on
  关闭:chkconfig iptables off
  2) 即时生效,重启后复原
  开启:service iptables start
  关闭:service iptables stop
  6.设置开机启动mongodb
  A.添加mongodb系统服务:vim etc/rc.d/init.d/mongod
  B.输入以下内容:
  ulimit -SHn 655350
  #!/bin/sh
  # chkconfig: - 64 36
  # description:mongod
  case $1 in
  start)
  /usr/local/mongodb/bin/mongod  --config /usr/local/mongodb/mongodb.conf
  ;;
  stop)
  /usr/local/mongodb/bin/mongo 127.0.0.1:27017/admin --eval "db.auth('root','123456');db.shutdownServer()"
  ;;
  #db.auth('root','123456');当数据库进行了用户认证时,才需要加这一句,root和123456为用户名和密码
  status)
  /usr/local/mongodb/bin/mongo 127.0.0.1:27017/admin --eval "db.stats()"
  ;;
  esac
  C.保存完之后,添加脚本执行权限:chmod +x /etc/rc.d/init.d/mongod
  D.启动mongodb服务:service mongod start
  E.关闭mongodb服务:service mongod stop
  F.将此服务设置为开机启动:chkconfig mongod on,然后重新启动机器进行测试。
  G.验证mongodb是否启动:lsof -i :27017,检测端口是否在使用中。
  7.mongodb添加到环境变量
  vi etc/profile  #编辑环境变量文件
  export PATH=$PATH:/usr/local/mongodb/bin
  Esc + :wq!  #保存并退出
  source /etc/profile  #使配置立即生效
  mongo#现在在任何目录下执行mongo都可以进入控制台
  
【最喜欢你一言不合就打赏的样子啦~~~哈哈哈】

运维网声明 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-424727-1-1.html 上篇帖子: 详解log4j2(下) 下篇帖子: nodeJS学习(8)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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