来个原创: mongodb 集群实例
因为估计我没那么多服务器去做分片,所以下只是类似主从的服务器集群,没有对单个数据库再分片到多个机器上.以下目标就是在多个机器上都保存一份完整数据,并能自动主从切换(未实现)即便是这样,配置仍然一波三折,特别网上的文章多基于本机或者是版本实现差异,多个步骤是对不上那些教程的.使用版本 mongodb-win32-i386-2.0.21.解压后即可开始使用.2.讲解一下配置文件.网上的例子基本都是命令行的,配置文件方式如下mongod --config D:\mongodb-win32-i386-2.0.2\bin\mongo.cnf基本上配置文件内容与参数差不多: 把命令行参数的 "--" 去掉然后加上 "=" 在参数值前并且每个参数单独一行就可以了.示例如下:dbpath=D:\mongodb-win32-i386-2.0.2\bin\data不过例子仍然是命令行,如下mongod.exe --dbpath D:\mongodb-win32-i386-2.0.2\bin\data --replSet rs1 --keyFile D:\mongodb-win32-i386-2.0.2\bin\key_r03.看到那个 key_r0 文件没有,这个是 mongdb 一定要有的标识,并且主从机是一样的(其实我的主从机只有 data 目录不同)内容就是一个文本文件,可以这样 "this is rs1 super secret key"4.第一次一定要在命令行中初始化,不过初始化后就会写入文件以后就不用了,程序启动就行.5.初始化时主从机都要初始化.6.初始化时至少从机的 data 中不能有数据.执行 rs.initiate(config_rs1); --初始化配置 时会报错的,看提示来.7.命令如下:命令1config_rs1 = {_id: 'rs1', members: [ {_id: 0, host: '192.168.41.177:27017', priority:1}, --成员IP 及端口,priority=1 指PRIMARY {_id: 1, host: '192.168.41.34:27017'}}命令2rs.initiate(config_rs1); --初始化配置可能我的版本或配置有问题,命令中的英文要去掉.8.命令是否成功用 rs.status() 查看.9.命令要用本机的 mongodb.exe 执行.10.要想用 MongoVUE 这样的工具跨机器访问从机的数据还能使用用户登录模式,方法是给数据库加一个用户.加在 admin 数据库中的话可以访问全部数据库.添加用户的操作要在主机上执行,从机会自动同步的.11.默认从机是只读的,要改 SlaveOk ,否则会报 "Server is not a primary and SlaveOk is false.."12.认证方式的登录连接字符串如下:MongoServer mongodb = MongoServer.Create("mongodb://192.168.41.34:27017/root:111");失败//MongoServer mongodb = MongoServer.Create("mongodb://192.168.41.34:27017/root:111?slaveOk=true");