mongodb c driver的怎么实现断线重新连接

mongodb c driver的怎么实现断线重新连接,第1张

MongoDB2.6的CXX驱动(mongo-cxx-driver-26compat),内置包含了数据库连接池,方便管理数据库连接,但是官方文档说的比较晦涩,新手入门往往不知道怎样使用连接池获取数据库连接。本文简单介绍如何使用基本的连接池。

首先要明确的一点是,虽然有连接池类,但是不需要显示调用该类,具体使用方法如下:

mongo::ScopedDbConnection scopedConn = mongo::ScopedDbConnection(DBHost)

mongo::DBClientBase* conn = scopedConn.get()

代码解释如下,第一行使用mongo::ScopedDBConnection对象,负责从内置的数据库连接池中获取一个指定数据库的连接,DBHost表示数据库地址,本机测试为“127.0.0.1:27017”,然后从该链接对象可以获取具体的数据库连接 *** 作对象指针DBClientBase,用于进行insert,remove,update,query,findone等 *** 作。

注意使用完该连接,需要调用下面的代码释放该链接,否则会导致连接始终未释放导致不停创建新连接的问题:

scopedConn.done()

总的来说,mongoDB的连接池使用还是很简单的,如果官方有个实际的example告诉用户如何使用会更好理解

MongoDB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐。这里主要讲如何在windows平台下安装MongoDB。

方法/步骤

登陆mongodb官网点击右侧的下载

选择windows平台,如图点击需要的zip文件下载(笔者这里主要讲诉zip文件的安装)

legacy版本可以用于旧版本系统下安装,这里不推荐。

将zip文件解压放到盘符的根目录(如C:或D:),为了方便建议文件夹命名尽量简短如(d:\mongodb)

创建数据库文件的存放位置,比如d:/mongodb/data/db。启动mongodb服务之前需要必须创建数据库文件的存放文件夹,否则命令不会自动创建,而且不能启动成功。

打开cmd(windows键+r输入cmd)命令行,进入D:\mongodb\bin目录(如图先输入d:进入d盘然后输入cd d:\mongodb\bin),

输入如下的命令启动mongodb服务:

D:/mongodb/bin>mongod --dbpath D:\mongodb\data\db

mongodb默认连接端口27017,如果出现如图的情况,可以打开http://localhost:27017查看(笔者这里是chrome),发现如图则表示连接成功,如果不成功,可以查看端口是否被占用。

其实可以将MongoDB设置成Windows服务,这个 *** 作就是为了方便,每次开机MongoDB就自动启动了。

如图在d:\mongodb\data下新建文件夹log(存放日志文件)并且新建文件mongodb.log

在d:\mongodb新建文件mongo.config

用记事本打开mongo.config输入:

dbpath=D:\mongodb\data\db

logpath=D:\mongodb\data\log\mongo.log

(图片的logpath有错误)

用管理员身份打开cmd命令行,进入D:\mongodb\bin目录,输入如下的命令:

D:\mongodb\bin>mongod --config D:\mongodb\mongo.config

有人提醒改为如下:

mongod --config D:\mongodb\mongo.config --install --serviceName "MongoDB"

如图结果存放在日志文件中,查看日志发现已经成功。如果失败有可能没有使用管理员身份,遭到拒绝访问。

打开cmd输入services.msc查看服务可以看到MongoDB服务,点击可以启动。

1、下载MongoDB数据库;

2、将安装文件解压到C盘(注意:安装路径中不能出现空格),配置“环境变量”,将 %MONGODB_HOME%in 添加到“Path”中;

3、进入DOS窗口,设置数据保存目录(与端口)和日志输出目录。

DOS命令:

mongod --port --dbpath --logpath --logappend --directoryperdb

参数说明:

--port 表示数据库端口,默认27017;

--dbpath 表示数据文件存储路径,一般设置为%MONGODB_HOME%data;

--logpath 表示日志文件存储路径,一般设置为%MONGODB_HOME%logsmongodb.log;

--logappend 表示日志追加,默认是覆盖;

--directoryperdb 表示每个db一个目录;

4、完成以上设置,MongoDB已经启动,新开启DOS窗口,执行“mongo.exe”,出现“MongoDB shell version: 1.8.1”表示安装成功了。

5、目前是以无权限限制的方式启动的,你可以做任何 *** 作。那么我们先切换到admin下,创建一个root用户吧。执行命令:

"use admin" ->"db.addUser("root","root")" ->"db.auth("root","root")",如下图所示:

6、把MongoDB注册为Windows Service,让它开机自动启动;执行命令:

mongod --bind_ip 127.0.0.1 --logpath %MONGODB_HOME%logsmongodb.log --logappend --dbpath %MONGODB_HOME%data --directoryperdb --auth --install

注意:

a.必须切换到bin目录下执行该条指令。

b.必须添加--auth用户权限才会生效。

c.除了“--auth”和“--install”两个参数,别的参数要跟你设置用户时启动服务的参数一致,尤其是“--directoryperdb”。

第一次配置完成后,一定要重启才会有效果 重启mongo客户端,不输入-u-p可以直接进入,但是不具有任何权限。正确的访问方式为:mongo 数据库名 -u 用户名 -p。另外设置用户

7、服务安装成功后的界面:

8、如果安装失败:

删除MongoDB服务,执行命令:

sc delete MongoDB

启动MongoDB服务,执行命令:

net start "MongoDB"

9、在cmd下可有两种方法打开,net和sc,net用于打开没有被禁用的服务,语法是:

启动:net/sc start 服务名

停止:net/sc stop 服务名

10、另外,sc可用于打开被禁用的服务,语法是:

sc config 服务名 start= demand //手动

sc condig 服务名 start= auto //自动

sc config 服务名 start= disabled //禁用

注意:以上三个命令“=”号后面必须有一个空格

Mongo(也译芒果)名字来自humongous,意思是巨大无比的,极大的。它是一个高性能,开源,无模式的文档型NOSQL数据库。Mongo使用C++开发,提供了以下功能:

面向集合的存储:适合存储对象及JSON形式的数据。

动态查询:Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。

完整的索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式,并生成一个高效的查询计划。

查询监视:Mongo包含一个监视工具用于分析数据库 *** 作的性能。

复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移。

高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)。

自动分片以支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器。

MongoDB服务端可运行在Linux、Windows或OS X平台,支持32位和64位应用,在32位模式运行时支持的最大文件尺寸为2GB。

常用启动参数:

–dbpath 指定特定存储目录启动,若目录不存在则创建。默认目录为/data/db。例:./mongod –dbpath /var/data/mongo

–port 指定端口启动。默认端口为27017。例:./mongod –port 12345

windows 下使用方法

直接启动:

$ bin/mongod.exe #启动服务器

$ bin/mongo.exe #启动客户端连接

注册为服务,这样以后开机就可以自动启动

$ bin/mongod.exe --logpath c:\data\log.log --logappend --dbpath "c:\data\db" --install #主要是install 参数,要新建c:\data\log.log文件和c:\data\db目录

删除服务

$ bin/mongod.exe --remove

当注册为服务时可以Win+R打开运行,输入services.msc来查看服务状态

常见错误

1、monge.exe客户端连接时报错:couldn’t connect to server 127.0.0.1 shell/mongo.js:79

这是因为monged.exe启动失败

2、多次尝试后monged.exe启动失败,始终没找到原因

这个错误困扰了我一段时间,后来发现c:\data\db下有个mongod.lock锁文件,把这个文件删除后,重新启动服务器就可以了。

服务启动报错: error2: system can not find the file specified.

solution:

安装服务的时候, 你需要用 mongod.exe的 full path

C:\mongodb-win32-i386-1.8.2\bin\mongod.exe --logpath c:\mongo

db\logs\mongo.log --dbpath c:\mongodb\data\db --directoryperdb --install

to remove service

C:\mongodb-win32-i386-1.8.2\bin\mongod.exe --logpath c:\mongo

db\logs\mongo.log --dbpath c:\mongodb\data\db --directoryperdb --remove

and re open windows service windows, the original service will gone.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10830130.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存