一、缘由:

  用在线安装的方式安装mongodb,诚然很方便。但文件过于分散,如果在单机多实例的情况下,就不方便管理。

对于数据库的管理,我习惯将所有数据(配置)文件放在一个地方,方便查找区分。

二、解决办法:

1、下载二进制包

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.10.tgz

2、解压并程序更换目录

tar -zxvf mongodb-linux-x86_64-3.2.10.tgz

sudo mv mongodb-linux-x86_64-3.2.10 /usr/local/mongodb-3.2.10

sudo chown -R root:root /usr/local/mongodb-3.2.10

3、更改环境变量

为了可以直接在shell下敲mongo进入mongodb,需在/etc/profile中添加

export PATH=/usr/local/mongodb-3.2.10/bin:$PATH

使环境变量生效

source /etc/profile 或者

sudo bash -c "source /etc/profile"

4、添加mongod用户

因为不建议用root启动mongodb,这里用mongod用户启动

sudo groupadd mongod
sudo adduser mongod -g mongod

5、增加配置文件

在程序目录下新增mongodb配置文件mongod_27017.conf,具体内容如下:

# mongod.conf

# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/ # where to write logging data.
systemLog:
destination: file
logAppend: true
path: /data/mongodb_data//mongod.log # Where and how to store data.
storage:
dbPath: /data/mongodb_data//data/
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger: # how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /data/mongodb_data//mongod.pid # location of pidfile # network interfaces
net:
port:
bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces. #security:
# authorization: enabled #operationProfiling: replication:
replSetName: replica_test #sharding: ## Enterprise-Only Options #auditLog: #snmp:

6、创建数据文件目录

sudo mkdir -p /data/mongodb_data/27017/data

sudo chown -R mongod.mongod /data/mongodb_data/27017

7、启动mongodb

启动前需要先安装numactl,使用它启动mongodb,忽略numa架构带来的影响。

sudo yum install numactl -y

sudo su -l mongod -c "numactl --interleave=all mongod -f /usr/local/mongodb-3.2.10/mongod_27017.conf "

或者

sudo su - mongod

numactl --interleave=all mongod -f /usr/local/mongodb-3.2.10/mongod_27017.conf

三、附加内容:

1、进入mongodb后,会看到一些warning信息,需要我们调整一下相应的系统变量,将来才能避免踩到某些坑。

sudo bash -c "echo 0 > /proc/sys/vm/zone_reclaim_mode"

sudo bash -c "echo never > /sys/kernel/mm/transparent_hugepage/enabled"

sudo bash -c "echo never > /sys/kernel/mm/transparent_hugepage/defrag"

关于NUMA的Warnging,请用numactl --interleave=all mongod 启动;

关于soft rlimits too low,请调整ulimit -u 数值(用户拥有最大进程数)

2、Centos 6 安装Mongodb方法

1)添加一个yum仓库

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=
enabled=
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

2)安装mongodb

sudo yum install -y mongodb-org

3)启动mongodb

sudo service mongodb start

[Mongodb] Tarball二进制包安装过程的更多相关文章

  1. 二进制包安装MySQL数据库

    1.1二进制包安装MySQL数据库 1.1.1 安装前准备(规范) [root@Mysql_server ~]# mkdir -p /home/zhurui/tools ##创建指定工具包存放路径 [ ...

  2. rpm包安装过程中依赖问题“libc.so.6 is needed by XXX”解决方法

    rpm包安装过程中依赖问题"libc.so.6 is needed by XXX"解决方法 折腾了几天,终于搞定了CentOS上的Canon LBP2900打印机驱动.中间遇到了一 ...

  3. kubernetes实践之一:kubernetes二进制包安装

    kubernetes二进制部署 1.环境规划 软件 版本 Linux操作系统 CentOS Linux release 7.6.1810 (Core) Kubernetes 1.9 Docker 18 ...

  4. MySQL5.7单实例二进制包安装方法

    MySQL5.7单实例二进制包安装方法 一.环境 OS: CentOS release 6.9 (Final)MySQL: mysql-5.7.20-linux-glibc2.12-x86_64.ta ...

  5. ubuntu 可能的依赖包,安装过程中根据需要安装

    /*************依赖包安装****************/下面是可能的依赖包,安装过程中根据需要安装 build-essential - libglib2.-dev libpng3 li ...

  6. Mysql 通用二进制包安装

    通用二进制包安装 注意:这里有严格的平台问题: 使用时:centos5.5版本   (类似Windows下的绿色包) 下载(mirrors.sohu.com/mysql)   直接使用tar 解压到指 ...

  7. MySQL二进制包安装

    mysql的安装有多种方法,这里就介绍一下二进制包安装. [root@node1 ~]# tar xvf mysql-5.7.27-linux-glibc2.12-x86_64.tar [root@n ...

  8. [Linux] 028 源码包安装过程

    1. 安装准备 安装 C 语言编译器 下载源码包 如:apache 相应源码包下载地址 2. 安装注意事项 源代码保存位置:/usr/local/src 软件安装位置:/usr/local 如何确定安 ...

  9. MySQL二进制包安装及启动问题排查

    环境部署:VMware10.0+CentOS6.9(64位)+MySQL5.7.19(64位)一.操作系统调整 # 更改时区 .先查看时区 [root@localhost ~]# date -R Tu ...

随机推荐

  1. c# 强制转换, 隐式转换, 显式转换

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  2. Bool 类型变量的使用

    定义一个bool类型的变量,默认为FALSE的 private bool BHaveBeenTip=false; private void label5_Click(object sender, Ev ...

  3. java 对象 :创建

    灵感来自effective java 关于对象,是java的核心,如何有效的创建其实是一个值得关注的地方. 1.静态工厂:这是一个值得关注的,并且应该时刻考虑的方法. 优点:1.他是有名字的,这个是如 ...

  4. 4-Spark高级数据分析-第四章 用决策树算法预测森林植被

    预测是非常困难的,更别提预测未来. 4.1 回归简介 随着现代机器学习和数据科学的出现,我们依旧把从“某些值”预测“另外某个值”的思想称为回归.回归是预测一个数值型数量,比如大小.收入和温度,而分类则 ...

  5. Linux 指令。

    从16年11月21号开始吧,加班变得特别频繁,基本上一周加5天,周六也会加,下班也很晚,一般都是10点9点,回家之后很疲惫,已经很久没有给自己充过电了,自己的学习计划和健身计划也打乱了,对工作的压力也 ...

  6. javascript下ie7,ie8的Date Bug的解决

    ie9+, chrome firefox opera下 string到Date 使用  new Date("2013-01-01"); 都是ok的. 但在ie7, ie8下 返回N ...

  7. Android深度探索HAL与驱动开发 第三章 Git入门

    Git功能十分复杂,简单来说它使你的开发更为快捷和可控,尤其是在开源项目上展现的友好的交互和回馈. 熟悉一些git指令操作对开发者的帮助可以避免开发者受到一些外在因素打断开发进度,甚至延误项目的che ...

  8. 第四篇T语言实例开发,自动加血

    游戏自动加血 基础知识复习 通过前面的学习了解以下内容: TC软件的基本使用 TC的基础语法 变量与常量 功能的使用 流程语句的使用 线程的基本使用 TC控件的基本使用 热键和按钮的事件功能 控件的数 ...

  9. php部分---单文件上传的封装类

    <?php $fileinfo=$_FILES["myfile"]; function uploadfile($fileinfo,$allowext=array('jpeg' ...

  10. 处理 Oracle SQL in 超过1000 的解决方案

    处理oracle sql 语句in子句中(where id in (1, 2, ..., 1000, 1001)),如果子句中超过1000项就会报错.这主要是oracle考虑性能问题做的限制.如果要解 ...