博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CentOS 6.5环境 MongoDB 3.2.8 单实例安装部署
阅读量:6721 次
发布时间:2019-06-25

本文共 4157 字,大约阅读时间需要 13 分钟。

本文是基于CentOS6.6操作系统上安装MongoDB3.2.8社区版。操作系统要求是64位,MongoDB要求下载64位版本。不建议生产环境部署单实例,可以部署集群,提高数据库的安全性、稳定性和可用性。
配置大内存页面redhat_transparent_hugepage参数设置为never。
先查看该参数值
# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled[always] madvise never# cat /sys/kernel/mm/redhat_transparent_hugepage/defrag[always] madvise never

配置disable-transparent-hugepages服务

vi /etc/init.d/disable-transparent-hugepages#!/bin/bash### BEGIN INIT INFO# Provides: disable-transparent-hugepages# Required-Start: $local_fs# Required-Stop:# X-Start-Before: mongod mongodb-mms-automation-agent# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: Disable Linux transparent huge pages# Description: Disable Linux transparent huge pages, to improve# database performance.### END INIT INFOcase $1 in  start)    if [ -d /sys/kernel/mm/transparent_hugepage ]; then      thp_path=/sys/kernel/mm/transparent_hugepage    elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then      thp_path=/sys/kernel/mm/redhat_transparent_hugepage    else      return 0    fi    echo 'never' > ${thp_path}/enabled    echo 'never' > ${thp_path}/defrag    re='^[0-1]+$'    if [[ $(cat ${thp_path}/khugepaged/defrag) =~ $re ]]    then      # RHEL 7      echo 0 > ${thp_path}/khugepaged/defrag    else      # RHEL 6      echo 'no' > ${thp_path}/khugepaged/defrag    fi    unset re    unset thp_path    ;;esac
对该服务授权,并设置开机自启动
sudo chmod 755 /etc/init.d/disable-transparent-hugepagessudo chkconfig --add disable-transparent-hugepages
重启服务器,并检查该参数是否已经生效
# cat /sys/kernel/mm/redhat_transparent_hugepage/enabledalways madvise [never]# cat /sys/kernel/mm/redhat_transparent_hugepage/defragalways madvise [never]
提高默认文件描述符和进程/线程数限制
Linux默认的文件描述符数和最大进程数对于MongoDB来说一般会太低。建议把这个数值设为64000。因为MongoDB服务器对每一个数据库文件以及每一个客户端连接都需要用到一个文件描述符。如果这个数字太小的话在大规模并发操作情况下可能会出错或无法响应。 你可以通过以下命令来修改这些值:
ulimit -n 64000ulimit -u 64000
配置用户与目录
MongoDB数据库默认情况下是没有做权限控制的,只要能够连接所开放的端口就能进行访问,而且拥有root级别的权限;对于生产环境而言是极不安全的,所以需要建立用户,进行授权控制。
# groupadd mongod# useradd mongod -g mongod# mkdir -p /u01/app/mongod/3.2.8/data# mkdir -p /u01/app/mongod/3.2.8/logs# chown -R mongod:mongod /u01/app/mongod/# mv mongodb-linux-x86_64-rhel62-3.2.8.tgz /home/mongod/# chown -R mongod:mongod /home/mongod/mongodb-linux-x86_64-rhel62-3.2.8.tgzsu - mongod$ tar -zxvf mongodb-linux-x86_64-rhel62-3.2.8.tgz
配置参数
vi /u01/app/mongod/3.2.8/mongod.confdbpath=/u01/app/mongod/3.2.8/databind_ip=192.168.0.178,localhostport=27001oplogSize=5000logpath=/u01/app/mongod/3.2.8/logs/mongod.loglogappend=truefork=true
启动数据库,并创建超级管理员:
$ /home/mongod/mongodb-linux-x86_64-rhel62-3.2.8/bin/mongod -f /u01/app/mongod/3.2.8/mongod.conf
创建管理与普通用户
登录mongodb数据库:
$ /home/mongod/mongodb-linux-x86_64-rhel62-3.2.8/bin/mongo --port 27001> use admin> db.createUser(  {  user:"Superadmin",  pwd:"Password",  roles:[{role:"root",db:"admin"}]  }  )

关闭mongodb进程,并在mongod.conf 文件的最后加上参数auth=true。出于安全考虑,禁止使用27017端口。

--auth: 在mongod启动项中加入--auth,mongodb启动后,就可以完成授权模块的启用);

vi /u01/app/mongod/3.2.8/mongod.confdbpath=/u01/app/mongod/3.2.8/databind_ip=192.168.0.178,localhostport=27001oplogSize=5000logpath=/u01/app/mongod/3.2.8/logs/mongod.loglogappend=truefork=trueauth=true

重新启动mongodb进程,创建普通用户。

> db.shutdownServer()

$ /home/mongod/mongodb-linux-x86_64-rhel62-3.2.8/bin/mongo --port 27001 -u Superadmin -p Password --authenticationDatabase adminMongoDB shell version: 3.2.8> use adminswitched to db admin> db.auth("Superadmin","Password")1> use iotswitched to db iot> db.createUser( {  user:"myiot",  pwd:"abc123",  roles:[{role:"readWrite",db:"iot"}] } )$ /home/mongod/mongodb-linux-x86_64-rhel62-3.2.8/bin/mongo 192.168.0.178:27001/iot -u myiot -p abc123$ /home/mongod/mongodb-linux-x86_64-rhel62-3.2.8/bin/mongo --port 27001 -u Superadmin -p Passw0rd#72 --authenticationDatabase admin

创建集合索引

$ /home/mongod/mongodb-linux-x86_64-rhel62-3.2.8/bin/mongo 192.168.0.178:27001/iot -u myiot -p abc123

#> db.ColdSignal.createIndex({ "recordDate" : 1, "deviceCode" : 1 });> db.ColdSignal.createIndex({deviceCode:1,recordDate:1},{background:true,unique:true})
URI连接串格式
应用程序与数据库之间的连接串配置

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

文章结束!

转载地址:http://uynmo.baihongyu.com/

你可能感兴趣的文章
Linux下的SVN服务器搭建
查看>>
为什么要购买企业即时通讯
查看>>
Python 基础语法
查看>>
java中的Closeable接口
查看>>
html特殊字符 对应content编码 支持css3
查看>>
Mac设置环境变量
查看>>
行政笔记
查看>>
腾讯空间、新浪微博、腾讯微博登录接口
查看>>
nginx 随机启动脚本配置说明
查看>>
2.MySQL源码安装
查看>>
RabbitMQ系列二:管理RabbitMQ
查看>>
ospf虚拟链路
查看>>
Spring的一些配置文件的使用
查看>>
芒果数据库配置文件
查看>>
大路考注意事项
查看>>
UIImagePickerController-设置相机(全屏)
查看>>
CodeSmith学习记录 --准备工作
查看>>
第五课作业
查看>>
Linux文本处理三剑客(grep,sed,awk)
查看>>
西部开源学习笔记《unit 11》
查看>>