红联Linux门户
Linux帮助

ubuntu14.04 mongodb c++ driver安装

发布时间:2016-05-18 15:08:16来源:linux网站作者:w1282109144

安装mongodb
1)安装

mongdb数据库安装比较简单,直接输入

$sudo apt-get install mongodb

运行

wu@wu-VirtualBox:~$ mongo
MongoDB shell version: 2.4.9
connecting to: test
Server has startup warnings:
Thu Apr  7 08:50:31.670 [initandlisten]
Thu Apr  7 08:50:31.671 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Thu Apr  7 08:50:31.671 [initandlisten] **       32 bit builds are limited to less than 2GB of data (or less with --journal).
Thu Apr  7 08:50:31.671 [initandlisten] **       See http://dochub.mongodb.org/core/32bit
Thu Apr  7 08:50:31.672 [initandlisten]
>

这时候mongodb就安装成功了。


2)设置mongodb自启动

默认情况下是配置文件启动的,如下

ubuntu@ubuntu:~$ ps aux | grep mongo
mongodb   8618  0.9  3.7 233952 35932 ?        Ssl  07:19   1:11 /usr/bin/mongod --config /etc/mongodb.conf
ubuntu   11461  0.0  0.1   3748  1020 pts/0    S+   09:19   0:00 grep --color=auto mongo

但是,机器重启之后mongod不会自启动,在运行会出现

ubuntu@ubuntu:~$ sudo reboot
ubuntu@ubuntu:~$ mongo
MongoDB shell version: 2.4.9
connecting to: test
Tue May 17 09:23:00.632 Error: couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:145
exception: connect failed

这时候再通过配置文件启动,有了

ubuntu@ubuntu:~$ /usr/bin/mongod --config /etc/mongodb.conf
ubuntu@ubuntu:~$ mongo
MongoDB shell version: 2.4.9
connecting to: test
Server has startup warnings:
Thu Jan  1 00:00:11.969 [initandlisten]
Thu Jan  1 00:00:11.969 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Thu Jan  1 00:00:11.971 [initandlisten] **       32 bit builds are limited to less than 2GB of data (or less with --journal).
Thu Jan  1 00:00:11.972 [initandlisten] **       See http://dochub.mongodb.org/core/32bit
Thu Jan  1 00:00:11.972 [initandlisten]
>


进入正题:如何开机自启动?

进入超级用户编辑/etc/rc.local,在最后一行的前面加入

mongod --dbpath=/var/lib/mongodb --fork --logappend --logpath=/var/log/mongodb/mongodb.log --journal

这时候在次开机重启的时候,没问题了,大功告成。

上面那句换成下面这句应该也行吧,没有尝试

/usr/bin/mongod --config /etc/mongodb.conf


安装c++driver

下载driver

到mongodb官网下载(https://github.com/mongodb/mongo-cxx-driver/tree/legacy-1.0.0)驱动,我用的驱动版本driver-1.0.0。安装教程参考https://github.com/mongodb/mongo-cxx-driver/wiki/Tutorial

安装

driver的安装依赖于scons这个工具,安装比较简单,直接运行

$sudo apt-get install scons

开始安装driver

$unzip mongo-cxx-driver-legacy-1.0.0.zip
$cd mongo-cxx-driver-legacy-1.0.0/
$sudo scons --prefix=/usr/local install

运行过程中可能会报错停止,这种情况一般就是一些依赖库没有装,比如boost库,接着再用apt-get安装相应的库,然后重新安装。如果没有报错,这样就算是安装完成了。


测试driver

官网(https://github.com/mongodb/mongo-cxx-driver/wiki/Tutorial)给出了测试用例,这里我就直接拿过来了,命名tutorial.cpp

#include <cstdlib>
#include <iostream>
#include "mongo/client/dbclient.h" // for the driver

void run() {
mongo::DBClientConnection c;
c.connect("localhost");
}

int main() {
mongo::client::initialize();
try {
run();
std::cout << "connected ok" << std::endl;
} catch( const mongo::DBException &e ) {
std::cout << "caught " << e.what() << std::endl;
}
return EXIT_SUCCESS;
}

但是,官网编译指令是这样的,我运行的时候不好使,老是报错。

g++ tutorial.cpp -pthread -lmongoclient -lboost_thread-mt -lboost_system -lboost_regex -o tutorial

询问大神之后,改成这样

ubuntu@ubuntu$ g++ tutorial.cpp -pthread -lmongoclient -lboost_thread -lboost_system -lboost_regex -o tutorial

如果没有报错,生成了可执行文件tutorial,运行

ubuntu@ubuntu$ ./tutorial
connected ok

恭喜你,安装成功了。


报错:我在编译过程报错了,全都是同样的错误,错误解决了,但是忘记截屏了,说的是一大堆关于ssl的未定义引用,也不知道怎么回事,然后将驱动卸载重装,稀里糊涂的就好了


题外话:装mongodb的php驱动,只需要apt-get install php5-mongo即可。


本文永久更新地址:http://www.linuxdiyf.com/linux/20749.html