install mongo on debian7.5
来源:互联网 发布:考研英语二参考书知乎 编辑:程序博客网 时间:2024/06/07 16:04
序
在debian上安装mongo社区版,官方给了文档。
Install MongoDB Community Edition on Debian
现在mongo版本为3.4
装完mongod, 再装mongo-c-driver, mongo-c-driver. 可能会缺很多其他依赖,找资料,一个一个装,心碎了。
如果下的单独的deb, 按照deb下载页说明, 将安装源加入/etc/apt/sources.list.
执行apt-get update.
如果一个deb装时有依赖,执行2次命令。
dpkg -i ./x.deb // first install
apt-get -f install // if install error, second install, auto install depends component.
实验
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.4 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
sudo apt-get update
sudo apt-get install -y mongodb-org
sudo service mongod start
成功信息
[ ok ] Starting database: mongod apparently already running.
用内建客户端连上去看看是否能操作mongo
mongo
成功信息
MongoDB shell version v3.4.4connecting to: mongodb://127.0.0.1:27017MongoDB server version: 3.4.4Welcome to the MongoDB shell.For interactive help, type "help".For more comprehensive documentation, see http://docs.mongodb.org/Questions? Try the support group http://groups.google.com/group/mongodb-userServer has startup warnings: 2017-05-20T11:08:27.680+0800 I STORAGE [initandlisten] 2017-05-20T11:08:27.680+0800 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine2017-05-20T11:08:27.680+0800 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem2017-05-20T11:08:27.865+0800 I CONTROL [initandlisten] 2017-05-20T11:08:27.865+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.2017-05-20T11:08:27.865+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.2017-05-20T11:08:27.865+0800 I CONTROL [initandlisten] 2017-05-20T11:08:27.865+0800 I CONTROL [initandlisten] 2017-05-20T11:08:27.865+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.2017-05-20T11:08:27.865+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'2017-05-20T11:08:27.865+0800 I CONTROL [initandlisten] >
远程mongod的连接设置
刚装完的mongod只能在本地用mongo连接。
如果用robomongo-1.0.0-rc1-windows-x86_64-496f5c2连接虚拟机里面的mongod(ip and port are ok), 显示网络不可达.
这时,要去改mongod的配置文件,然后重启mongod.
要屏蔽掉mongod.cond中的bindIp, 或在bindIp中加入允许访问的IP.
ref : How to connect to your remote MongoDB server
root@debian750:~# more /etc/mongod.conf # mongod.conf# for documentation of all options, see:# http://docs.mongodb.org/manual/reference/configuration-options/# Where and how to store data.storage: dbPath: /var/lib/mongodb journal: enabled: true# engine:# mmapv1:# wiredTiger:# where to write logging data.systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log# network interfacesnet: port: 27017# bindIp: 127.0.0.1#processManagement:#security:#operationProfiling:#replication:#sharding:## Enterprise-Only Options:#auditLog:#snmp:
安装mongo-c-driver
mongo-cxx-driver依赖mongo-c-driver, 正式发布的mongo-c-driver版本为1.6.2
下载mongo-c-driver-1.6.2.tar.gz,解压 tar -xzvf
因为要带口令登录mongod, 需要使sslss生效
./configure --enable-sasl=yes
make clean
make all
make install
测试mongoc是否正确编译和安装
编译后的源码目录有些测试程序,执行一下。
./test-libmongoc
安装mongo-cxx-driver
如果缺少git, 运行apt-get install git
git clone https://github.com/mongodb/mongo-cxx-driver.git --branch releases/stable --depth 1
如果缺少cmake, 运行 apt-get install cmake
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
如果cmake版本低了
sudo apt-get install build-essentialwget http://www.cmake.org/files/v3.2/cmake-3.2.2.tar.gztar xf cmake-3.2.2.tar.gzcd cmake-3.2.2./configuremakemake install
进入mongo-cxx-driver/src目录,开始编译
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
报错,说CMAKE_ROOT没找到
执行 ~/.bashrc, 增加CMAKE_ROOT
export CMAKE_ROOT=/usr/share/cmake-3.2
cd cmake-3.2
./bootstrap –prefix=/usr
make
make install
最后验证一下cmake是否可用
root@debian750:/home/lostspeed/tmp/cmake-3.2.2# cmake --versioncmake version 3.2.2CMake suite maintained and supported by Kitware (kitware.com/cmake).
去mongo-cxx-driver/src, 继续执行cmake
```cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
这版的mongo-cxx-driver需要GCC4.8.2, 现在是4.7.x, 升级gcc
Insufficient GCC version - GCC 4.8.2+ required
下载gcc_4.9.2-2_amd64.deb到虚拟机,
dpkg -i ./gcc_4.9.2-2_amd64.deb
apt-get -f install
去mongo-cxx-driver/src, 继续执行cmake
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
cmake编译git版的mongo-stable-3.0.x,不支持mongo3.4, 也不支持说明上的cmake命令行。
直接去下3.1.x的tar包。
如果缺curl, apt-get install curl
curl -OL https://github.com/mongodb/mongo-cxx-driver/archive/r3.1.1.tar.gz
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
在mongo-cxx-driver/src中,cmake通过。
make EP_mnmlstc_core
make install
这次,mongo-cxx-driver 3.1.1编译过了,心碎。
mongo-cxx-driver测试
mongo-cxx官方给了测试代码,随便找一个就行。
但是makefile和测试代码执行时,还会有点小问题,主要是路径包含和共享库的连接名称。
# ==============================================================================# makefile# lostspeed 2017-05-21# command list:# make clean# make# make rebuild# ==============================================================================## 必须用gcc + -lstdc++# 否则报错 : undefined reference to `std::allocator<char>::allocator()'## $@ is the label# $< is x.cpp# $^ is x.cpp y.cpp ...## show cur dir's all files# find .## echo show somthing by echo off# @echo xx## use ldd view elf depends's so# ldd ./testcase1.out # linux-vdso.so.1 (0x00007ffdd7993000)# libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fea69430000)# libmongocxx.so._noabi => not found# libbsoncxx.so._noabi => not found# libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fea6912f000)# libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fea68f19000)# libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fea68cfc000)# libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fea68951000)# /lib64/ld-linux-x86-64.so.2 (0x00007fea6973b000)## when run, error while loading shared libraries: libmongocxx.so._noabi: \# cannot open shared object file: No such file or directory# # use ln -s create link file name# ln -s real_file_name link_file_name## /usr/local/lib/libmongocxx.so._noabi -> libmongocxx.so.3.1.1# /usr/local/lib/libbsoncxx.so._noabi -> libbsoncxx.so.3.1.1# /usr/local/lib/libmongocxx.so.3.1.1# /usr/local/lib/libbsoncxx.so.3.1.1## rm /usr/local/lib/libmongocxx.so._noabi# rm /usr/local/lib/libbsoncxx.so._noabi# ln -s /usr/local/lib/libmongocxx.so.3.1.1 /usr/local/lib/libmongocxx.so._noabi# ln -s /usr/local/lib/libbsoncxx.so._noabi /usr/local/lib/libbsoncxx.so._noabi## use ldconfig reload config# ldconfig## now elf output depends ok# ldd ./testcase1.out # linux-vdso.so.1 (0x00007ffc487ef000)# libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f7f1e455000)# libmongocxx.so._noabi => /usr/local/lib/libmongocxx.so._noabi (0x00007f7f1e200000)# libbsoncxx.so._noabi => /usr/local/lib/libbsoncxx.so._noabi (0x00007f7f1dfe6000)# libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7f1dce5000)# libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f7f1dacf000)# libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7f1d8b2000)# libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7f1d507000)# /lib64/ld-linux-x86-64.so.2 (0x00007f7f1e760000)# libmongoc-1.0.so.0 => /usr/local/lib/libmongoc-1.0.so.0 (0x00007f7f1d2ab000)# libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007f7f1d090000)# libssl.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f7f1ce2f000)# libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f7f1ca35000)# librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f7f1c82d000)# libbson-1.0.so.0 => /usr/local/lib/libbson-1.0.so.0 (0x00007f7f1c5fd000)# libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7f1c3f9000)# libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f7f1c1e2000)# libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f7f1bfcb000)# ------------------------------------------------------------------------------CC = g++CFLAGS = --std=c++11 \ -Wall \ -gBIN = testcase1.outINC = -I. \ -I./3rd \ -I/usr/local/include/mongocxx/v_noabi/ \ -I/usr/local/include/libmongoc-1.0 \ -I/usr/local/include/bsoncxx/v_noabi/ \ -I/usr/local/include/libbson-1.0LIBS = -lstdc++ \ -pthread \ -lmongocxx \ -lbsoncxxLIBPATH = /usr/local/libSUBDIR = $(shell ls -d */)ROOTSRC = $(wildcard *.cpp)ROOTOBJ = $(ROOTSRC:.cpp=.o)SUBSRC = $(shell find $(SUBDIR) -name '*.cpp')SUBOBJ = $(SUBSRC:.cpp=.o)help: clear @echo make help @echo command list: @echo make clean @echo make all @echo make rebuildclean: clear @echo make clean rm -f $(BIN) $(ROOTOBJ) $(SUBOBJ)all:$(BIN) @echo make all find . -name "*.o" find . -name $(BIN)$(BIN) : $(ROOTOBJ) $(SUBOBJ) $(CC) $(CFLAGS) -o $@ $^ -L$(LIBPATH) $(LIBS).cpp.o: $(CC) -c $(CFLAGS) $^ -o $@ $(INC)rebuild: make clean make all
// @file main.cpp// @brief ...#include <stdlib.h>#include <stdio.h>#include "mongo_opt/mongo_opt.h"void test();int main(int argc, char* argv[]){ printf(">> main\n"); test(); printf("THE END\n"); return EXIT_SUCCESS;}void test() { bool b_rc = false; class_mongo_opt opt; b_rc = opt.test(); printf("[%s] = opt.test()\n", (b_rc ? "true" : "false"));}
// @file mongo_opt/mongo_opt.h// @brief ...#ifndef __MONGO_OPT_H__#define __MONGO_OPT_H__#include <stdlib.h>#include <stdio.h>#include <cstdint>#include <iostream>#include <vector>#include <bsoncxx/stdx/make_unique.hpp>#include <bsoncxx/json.hpp>#include <bsoncxx/builder/stream/document.hpp>#include <mongocxx/client.hpp>#include <mongocxx/stdx.hpp>#include <mongocxx/uri.hpp>#include <mongocxx/instance.hpp>#include <mongocxx/exception/exception.hpp>using bsoncxx::builder::stream::close_array;using bsoncxx::builder::stream::close_document;using bsoncxx::builder::stream::document;using bsoncxx::builder::stream::finalize;using bsoncxx::builder::stream::open_array;using bsoncxx::builder::stream::open_document;using mongocxx::v_noabi::instance;using mongocxx::v_noabi::uri;using namespace mongocxx;class class_mongo_opt{ public: class_mongo_opt(); virtual ~class_mongo_opt(); bool test();};#endif // #ifndef __MONGO_OPT_H__
// @file mongo_opt/mongo_opt.cpp// @brief ...#include <string>#include "mongo_opt/mongo_opt.h"class_mongo_opt::class_mongo_opt(){}class_mongo_opt::~class_mongo_opt(){}bool class_mongo_opt::test(){ bool b_rc = false; std::string errmsg; try { mongocxx::instance instance{}; // This should be done only once. mongocxx::uri uri("mongodb://localhost:27017"); mongocxx::client client(uri); b_rc = true; } catch(std::exception& ex) { errmsg = ex.what(); printf("exception : %s\n", errmsg.c_str()); b_rc = false; } return b_rc;}
- install mongo on debian7.5
- debian7.5
- brew install mongo
- ubantu install mongo
- Install LLVM on CentOS-5
- Install redis on CentOS6.5
- Install Qt 5 on Ubuntu
- install oracle11g on centos6.5
- install torch7 on centos6.5
- Install Qt 5 on Ubuntu
- Install Qt 5 on Ubuntu
- download and install Mongo db
- Debian7.5--双屏显示问题
- install erlang on linux (centos5.5)
- HowTo install Redmine on CentOS 5
- Install PostgreSQL 9.2 on RHEL 5, x64
- Install CUDA 5 on Ubuntu 12.04
- git install on Red Hat 5
- JavaScript实现的9大排序算法
- JDBC连接数据库的方式
- 共享内存(进程通信)
- 使用YOLOV2训练NWPUVHR-10dataset数据集
- @Autowired的方法
- install mongo on debian7.5
- Ubuntu 清理旧内核文件,解决升级时/boot空间不足
- 重拾Java(1)-基本数据类型与字面值
- contextcomponent-scan
- AOP学习笔记(二)——Spring AOP
- Unity API(一)Unity中的脚本事件及其函数
- 应届生面试相关问题
- FreeMarker简单使用及介绍
- spring.xml配置文件连接数据库