Litao OK Blog

A little blog for my life.

在CentOS 6.x 64bit上安装MongoDB 3.2社区版

基本安装步骤

参考: https://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/

1) 创建repo源文件:

1
sudo vim /etc/yum.repos.d/mongodb-org-3.2.repo

内容如下:

1
2
3
4
5
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=0
enabled=1

2) 更新源,并安装

1
2
sudo yum -y update
sudo yum -y install mongodb-org

3) 配置SELinux

1
sudo vim /etc/selinux/config

SELINUX内容改为:

1
SELINUX=disabled

需要重启系统才能生效!

4) 修改防火墙,保证端口可以访问:

1
2
sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
sudo /etc/init.d/iptables save

5) 检查目录权限:

确保 /var/lib/mongo 和 /var/log/mongodb 目录中文件是属于mongod:mongod用户和组,如果不是可以手工修改:

1
2
sudo chown -R mongod:mongod /var/lib/mongo
sudo chown -R mongod:mongod /var/log/mongo

6) 添加到系统服务中:

1
2
sudo chkconfig --add mongod
sudo chkconfig mongod on

7) 关闭THP(Transparent Huge Pages)

1
sudo vim /etc/init.d/disable-transparent-hugepages

内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/sh
### 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

    unset thp_path
    ;;
esac

修改权限并执行

1
2
sudo chmod 755 /etc/init.d/disable-transparent-hugepages
sudo /etc/init.d/disable-transparent-hugepages start

修改ulimit设置

1
ulimit -a

可以看到系统ulimit设置值,需要修改打开文件数和用户最大进程数,需要修改更大:

1
sudo vim /etc/security/limits.d/99-mongodb-nproc.conf

内容如下:

1
2
3
4
mongod soft nofile 64000  
mongod hard nofile 64000  
mongod soft nproc 524288 
mongod hard nproc 524288

其中分为soft配置和hard配置,保证soft<=hard;nofile是打开文件数,nproc是进程数,还需要参考/etc/sysctl.conf中的数据。

启动mongodb

1
sudo service mongod start

尝试登录:

1
mongo

如果没有提示任何WARNING信息说明以上配置参数是符合mongodb建议值了,enjoy!