• 如何编译MongoDB?


    本文将在Linux环境下编译Mongodb。

    您可以选择已经编译好的版本直接使用,也可以尝试自己编译。https://www.mongodb.org/downloads#production
     
     
    动手开始:

    1、Linux,本文选择Ubuntu 14.04 LTS 64bit,下载地址:
     
    2、包依赖:编译器 gcc g++ clang 安装方式:
     
    # sudo apt-get install gcc (4.8.2以上版本)
    # sudo apt-get install g++ (4.8.2以上版本)
    # sudo apt-get install clang(3.4以上版本)
     
    3、包依赖:python (2.7以上版本) 安装方式:
    # sudo apt-get install python
     
    4、包依赖:scons (2.3以上版本) 安装方式:
    # sudo apt-get install scons
    5、包依赖
    # sudo apt-get install aptitude
    # aptitude install scons build-essential
    # aptitude install libboost-filesystem-dev libboost-program-options-dev libboost-system-dev libboost-thread-dev

    6、源代码:从GitHub上面下载:https://github.com/mongodb/mongo 直接选择一个分支,右侧Download Zip,解压缩到目录:
     
    # mkdir mongodb-master-src
    # unzip mongodb-master.zip mongodb-master-src/
    # cd mongodb-master-src/
     
    7、新建一个 version.json 文件在 mongodb-master-src/ 目录下:在大部分能搜索到的文档中,大家都是直接下载好后就编译,但是会报一个scons错误,原因就是因为缺少这个文件。
     # gedit version.json
    然后输入以下内容后保存:
    {
        "version": "0.0.1-fake-"
    }


    8、编译源代码:

    # sudo scons all -j 4

    这里-j 4 是指你所使用的CPU核数。也可以直接:

    # sudo scons all  

    或者仅

    # sudo scons mongod
    # sudo scons mongo
    # sudo scons mongos


    9、编译后验证,执行下面语句,你将看到版本提示信息。

    # ./mongod --version


    10、编译后配置,新建相关目录及配置文件

    # mkdir mongodb_sample
    # cd  mongodb_sample/
    # mkdir bin
    # mkdir data
    # mkdir log
    # mkdir conf
    # cd conf
    # gedit mongod.conf

    在打开的端口内输入:

    port = 12345
    dbpath = data
    logpath = log/mongod.log
    fork = true  

    其中:port代表访问该数据库的端口号,fork表示是一个后台进程。

    11、复制编译好的文件到bin目录

    # cp ../mongod mongodb_sample/bin/


    12、启动mongod:

    # cd mongodb_sample/bin/
    # ./mongod -f conf/mongod.conf

    13、检查log和data目录将看到文件夹内有新的文件。
    14、停止mongod,这里因为没有连接到mongod服务器,所以直接使用kill的方式进行关闭,关闭的时候,不使用kill -9,可以使用kill -15:

    先查找进程ID:

    # ps -A | grep mongod

    然后

    # kill 32759

    关于kill命令后面的参数,详见:https://en.wikipedia.org/wiki/Unix_signal#SIGTERM

  • 相关阅读:
    Codeforces Round #669 (Div. 2) A、B题题解
    【证明】树上问题-树的直径
    Web前端开发——概述
    Codeforces Round #667 (Div. 3) A
    Codeforces Round #529 (Div. 3) 练习赛
    [Noip2012] 开车旅行 (倍增DP,难)
    国家集训队论文列表(1999-2019)
    博弈论经典模型解析(入门级)
    Problem 1342B
    SCOI2005 互不侵犯 (状态压缩入门题)
  • 原文地址:https://www.cnblogs.com/volnet/p/build-mongodb.html
Copyright © 2020-2023  润新知