CentOS 6.5环境 MongoDB 3.2.8 单实例安装部署

本文是基于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 INFO

case $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-hugepages
sudo chkconfig --add disable-transparent-hugepages

重启服务器,并检查该参数是否已经生效

# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
always madvise [never]
# cat /sys/kernel/mm/redhat_transparent_hugepage/defrag
always madvise [never]

提高默认文件描述符和进程/线程数限制
Linux默认的文件描述符数和最大进程数对于MongoDB来说一般会太低。建议把这个数值设为64000。因为MongoDB服务器对每一个数据库文件以及每一个客户端连接都需要用到一个文件描述符。如果这个数字太小的话在大规模并发操作情况下可能会出错或无法响应。 你可以通过以下命令来修改这些值:

ulimit -n 64000
ulimit -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.tgz
su - mongod
$ tar -zxvf mongodb-linux-x86_64-rhel62-3.2.8.tgz 

配置参数

vi /u01/app/mongod/3.2.8/mongod.conf
dbpath=/u01/app/mongod/3.2.8/data
bind_ip=192.168.0.178,localhost
port=27001
oplogSize=5000
logpath=/u01/app/mongod/3.2.8/logs/mongod.log
logappend=true
fork=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.conf
dbpath=/u01/app/mongod/3.2.8/data
bind_ip=192.168.0.178,localhost
port=27001
oplogSize=5000
logpath=/u01/app/mongod/3.2.8/logs/mongod.log
logappend=true
fork=true
auth=true

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

> db.shutdownServer()

$ /home/mongod/mongodb-linux-x86_64-rhel62-3.2.8/bin/mongo --port 27001 -u Superadmin -p Password --authenticationDatabase admin
MongoDB shell version: 3.2.8
> use admin
switched to db admin
> db.auth("Superadmin","Password")
1

> use iot
switched 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]]

文章结束!

时间: 2024-11-03 03:01:20

CentOS 6.5环境 MongoDB 3.2.8 单实例安装部署的相关文章

centos下的mysql单实例安装

系统环境:centos 6.2 64位 内核版本: 2.6.32-220.el6.x86_64 mysql版本:5.1.62 1.1首先创建mysql用户和组: [root@cqb ~]# groupadd mysql [root@cqb ~]# useradd -s /sbin/nologin -g mysql -M mysql 1.2下载mysql源码包后解压安装. [root@cqb ~]# wget http://mysql.ntu.edu.tw/Downloads/MySQL-5.1/

centOS服务器配置https环境,容器是tomcat。求教配置过程。谢谢!

问题描述 centOS服务器配置https环境,容器是tomcat.求教配置过程.谢谢! 公司的centOS服务器需要配置https加密,容器是tomcat.证书是公司购买的,如何配置,求教.谢谢! 解决方案 这个比较简单,修改tomcat下的conf/server.xml,指定证书路径为证书存放目录即可如: maxThreads=""150"" scheme=""https"" secure=""true

centOS配置https环境,容器tomcat,证书公司解决。求配置过程!谢谢!

问题描述 centOS配置https环境,容器tomcat,证书公司解决.求配置过程!谢谢! 求centOS服务器部署https过程,容器是tomcat! 解决方案 一般在哪里弄的证书,就去找那家提供证书的服务商,像 EVTrust 都是服务全包的

CentOS 6.x环境yum安装PostgreSQL 9.3.x及报错: jade: Command not found解决

CentOS 6.x环境下yum安装PostgreSQL 9.3.x的过程 PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统.有些特性甚至连商业数据库都不具备.这个起源于伯克利(BSD)的数据库研究计划目前已经衍生成一项国际开发项目,并且有非常广泛的用户. 下面记录CentOS 6.3环境下yum安装Postgres 9.3的简要过程. 1.查看已安装的包 # rpm -qa|grep postgres

VPS主机CentOS系统安装LNMP环境图文教程分享_Linux

我们国人使用VPS安装的系统环境最多的可能就是LNMP,笔者最近也在学着安装和使用VPS,也看到很多种系统环境可以选择,当然包括可以选择安装面板管理.暂时我不选择安装面板,一来使用面板没有技术含量,二来从难处学习,直接使用SSH操作VPS感觉还是非常有面子的.从多个系统中,我暂时也比较不了好坏,每一个都安装和测试一遍,并且把相关的信息都记录,一遍日后对比. 今天先来在CentOS中安装LNMP系统,最低的系统要求为128M内存,我相信大家的VPS最低也应该有256M内存,我测试的机器为512M内

CentOS 6.4创建Mongodb副本集_MongoDB

MongoDB是一个开源的non-SQL数据库引擎. MongoDB是可扩展的,是标准关系数据库管理系统(RDBMS)的替代品. 副本集可以使在节点发生故障时还能提供对您的数据的访问. 安装MongoDB 1.确保在副本集的每个成员设置好hostname nano /etc/hostname /etc/hostname: europa 2.创建一个文件以保存MongoDB存储库的配置信息: sudo touch /etc/yum.repos.d/mongodb.repo 3.如果运行的是64位系

奕新集团---单实例GG环境搭建

 奕新集团---单实例GG环境搭建   系统:OracleLinux 5.9  数据库版本11.2.0.3   hostname source target vim /etc/hosts 172.16.10.140 142    内核参数 D:\Oracle官方文档\E11882_01\install.112\e24326\toc.htm 添加用户组 [root@source ~]# groupadd -g 500 oinstall [root@source ~]# groupadd -g 51

CentOS 6.4下安装部署OpenStack云计算平台的方法_OpenStack

前言 OpenStack 是一个开源的 IaaS(基础设施及服务)云计算平台,让任何人都可以自行建立和提供云端运算服务. OpenStack 由一系列相互关联的项目提供云基础设施解决方案的各个组件,核心项目(9 个):       1.计算 (Compute) - Nova:       2.网络和地址管理 - Neutron:       3.对象存储 (Object) - Swift:       4.块存储 (Block) - Cinder:       5.身份 (Identity) -

oracle如何利用STANDBY将单实例数据库升级为RAC环境(四)

利用Oracle的STANDBY技术,可以将单实例数据库升级到RAC数据库.这种方式可以有效的降低单实例迁移到RAC环境的停机时间. 这篇文章描述整个操作过程中碰到的错误. 最开始碰了几个初始化参数设置的小错误,主要问题是FLASH_RECOVERY_AREA设置到ASM实例上导致了问题: SQL> startup nomount pfile=/export/home/oracle/inittest11gr1.ora ORA-01261: Parameter db_recovery_file_d