文档章节

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

江边望海
 江边望海
发布于 2016/11/07 08:46
字数 789
阅读 204
收藏 0

基本安装步骤

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

1) 创建repo源文件:

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

内容如下:

[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) 更新源,并安装

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

3) 配置SELinux

sudo vim /etc/selinux/config

SELINUX内容改为:

SELINUX=disabled

需要重启系统才能生效!

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

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用户和组,如果不是可以手工修改:

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

6) 添加到系统服务中:

sudo chkconfig --add mongod
sudo chkconfig mongod on

7) 关闭THP(Transparent Huge Pages)

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

内容如下:

#!/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

修改权限并执行

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

修改ulimit设置

ulimit -a

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

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

内容如下:

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

sudo service mongod start

尝试登录:

mongo

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

由于本人是在虚拟机上测试就使用了root账户来安装mongoDB,如果在生产环境,请创建新的帐号和组:mongodb。

安装PHP的MongoDB扩展

访问:https://pecl.php.net/package/mongo

wget https://pecl.php.net/get/mongo-1.6.13.tgz
cd mongodb-1.1.9
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

安装完成后,在php.ini中增加extension=mongodb.so并保存,重启php-fpm即可。

phpinfo打印出的扩展结果,证明扩展已经安装成功了。

写测试程序

在写测试程序之前,你首选需要在MongoDB中创建几条测试数据。具体创建方法可以参考我写的《MongoDB命令大全》详细介绍了常用的MongoDB的使用方法。

江边望海创建了一个db叫demo,集合叫teams里面有一套记录。

如上图:创建的测试数据

在你的web服务器(我的是nginx)的根目录创建一个php文件,粘贴下面代码:

<?php
$client = new MongoClient('mongodb://mongoadmin:mongoadmin@192.168.8.234:27017');
$db = $client->selectDB('demo');
$collection = $db->selectCollection('teams');
$cursor = $collection->findOne(array('_id' => new MongoId('582d5fa021b8cf1a733d7344')));
var_dump($cursor);

因为,我的mongoDB开启了授权访问。所以,需要在链接的填入用户名和密码。

如上图:可以从Collection中取出数据了。

参考链接:

http://litaook.com/blog/2016/01/22/install-mongodb-on-centos/

© 著作权归作者所有

共有 人打赏支持
江边望海
粉丝 26
博文 112
码字总数 57841
作品 3
郑州
技术主管
分布式缓存MongoDB+CentOS安装指南(阿里云)

在之前的文章介绍过了分布式缓存利器系列文章,进介绍另外一种NoSQL,它也是分布式缓存中间件--MongoDB。此文根据MongoDB官方网站安装指南简化而来,并且加入了自己的一些见解,就是为了使读...

landy8530
09/03
0
0
Percona Server for MongoDB 3.4.14-2.12 现已发布

Percona 宣布发布 Percona Server for MongoDB 3.4.14-2.12。Percona Server for MongoDB 是一款增强型,开放源代码且高度可扩展的数据库,它是MongoDB 3.2社区版的完全兼容的替代产品。它支...

周其
04/14
0
0
Linux中安装MongoDB(2015-11-03 00:51:24)

背景:之前有过一次试过安装MongoDB,但是网上说的方法各种各样,再加上虚拟机有问题,所以就导致没安装成功,今天在群里面提问,经过一哥们的提醒,告诉我直接上官网,按照官网上的安装方法...

Dreyer
2015/11/03
0
0
MongoDB 4.0 正式发布,支持多文档事务

MongoDB 4.0 已正式发布,MongoDB 是一个开源文档数据库,提供高性能、高可用性和自动扩展。 下载地址:MongoDB Download Center 在 4.0 正式发布之前,我们已经报道了其相关更新信息,此次正...

h4cd
06/29
0
27
8天学通MongoDB——第一天 基础入门

关于mongodb的好处,优点之类的这里就不说了,唯一要讲的一点就是mongodb中有三元素:数据库,集合,文档,其中“集合” 就是对应关系数据库中的“表”,“文档”对应“行”。 一: 下载 上M...

BobbyLou
2015/08/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

6. Python3源码—List对象

6.1. List对象 List对象是“变长对象”。 6.1.1. Python中的创建 Python中List对象最重要的创建方法为PyList_New,如下Python语句最终会调用到PyList_New: test = [1, 2, 3, 4, 5] 6.1.2. ...

Mr_zebra
30分钟前
1
0
nginx屏蔽指定接口(URL)

Step1:需求 web平台上线后,需要屏蔽某个服务接口,但又不想重新上线,可以采用nginx屏蔽指定平台接口的办法 Step2:具体操作 location /dist/views/landing/UNIQUE_BEACON_URL { re...

Linux_Anna
37分钟前
2
0
tomcat高并发配置调优

作者:Joker-pan 原文:https://blog.csdn.net/u011622226/article/details/72510385?utm_source=copy --------------------- tomcat 解压就使用的,配置都没动过,肯定不能支持高并发了; ...

imbiao
56分钟前
4
0
mysql 联结,级联查询总结区分

其实我对 数据库的级联或者联结查询一直都是会用,项目能查询出来自己想要的结果即可。 毕竟SQL使用复杂的查询毕竟比较少,而且不难使用。 至于区分他们,我还真的有点模糊。 在看 《SQL必知...

之渊
今天
4
0
区块链入门教程分享区块链POW证明代码实现demo

兄弟连区块链入门教程分享区块链POW证明代码实现demo 这里强调一下区块链的协议分层 应用层 合约层 激励机制 共识层 网络层 数据层 上 一篇主要实现了区块链的 数据层,数据层主...

兄弟连区块链入门教程
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部