千家信息网

mongodb安装配置

发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,1.Mongo DB ,是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式,备受当前IT从业人员的青睐。Mongo DB很好的实现了面向对象的思想(OO思想),在Mong
千家信息网最后更新 2025年02月08日mongodb安装配置

1.Mongo DB ,是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据

存储方式,备受当前IT从业人员的青睐。Mongo DB很好的实现了面向对象的思想(OO思想),

在Mongo DB中 每一条记录都是一个Document对象。Mongo DB最大的优势在于所有的数据

持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作。

2.monogodb安装

1.wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.5.tgz

2.tar xf mongodb-linux-x86_64-2.6.5.tgz

3.mv mongodb-linux-x86_64-2.6.5 /usr/local/mongodb

4.yum install openssl-devel openssl


3.mongodb启动测试

1.mkdir -pv /data/mongodb /log/mongodb

2./usr/local/mongodb/bin/mongod --port 27017 --fork --dbpath=/data/mongodb --logpath=/log/mongodb/mongodb.log --logappend

3./usr/local/mongodb/bin/mongo

use admin

db.shutdownServer()

exit

4.mongodb配置文件

在2.6版本以后使用另一种配置文件的格式,不能兼容以前的模式

2.6 http://docs.mongodb.org/manual/reference/configuration-options/

2.4 http://docs.mongodb.org/v2.4/reference/configuration-options/

概略

processManagement

systemLog

storage

net

setParameter

security

operationProfiling

replication

sharding

auditLog


示例

cat >>/usr/local/mongodb/mongodb.conf <

systemLog:

destination: file

path: "/log/mongodb/mongodb.log"

logAppend: true

storage:

dbPath: "/data/mongodb"

#directoryPerDB: true

mmapv1:

smallFiles: true

journal:

enabled: true

processManagement:

fork: true

pidFilePath: "/usr/local/mongodb/mongodb.pid"

net:

bindIp: 127.0.0.1,192.168.1.204

port: 27017

maxIncomingConnections: 1000000

http:

enabled: true

EOF

#启动

/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf


#如果是第二次启动并且使用了directoryPerDB: true,则必需要把dbPath也更换为其他目录


#通过web查看状态信息

http://192.168.1.221:28017/


#停止服务

/usr/local/mongodb/bin/mongo

use admin

db.shutdownServer()

exit


5.mongodb主从配置

#会把之前的数据也会同步到从机上

#方法1

/usr/local/mongodb/bin/mongod --port 27017 --fork --dbpath=/data/mongodb --logpath=/log/mongodb/mongodb.log --logappend --master --oplogSize 64


/usr/local/mongodb/bin/mongod --port 27017 --fork --dbpath=/data/mongodb --logpath=/log/mongodb/mongodb.log --logappend --slave --source 192.168.1.204:27017


#方法2

/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf --master --oplogSize 64


/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf --slave --source 192.168.1.204:27017


#测试

#主库添加记录

/usr/local/mongodb/bin/mongo

use test

db.blog.save({title:"new article"})


#从库查询

/usr/local/mongodb/bin/mongo

db.blog.find()


#在从机上查看主机信息

use local

db.sources.find();


#主从切换

#如果在应用中主挂掉了

#这个情况就需要停止从库, 把从库以主库的启动命令起来


6.mongodb集群(replset)(只支持12个节点,多于12个节点使用master/slave)


#比主比好的地方是当主挂机上可以主动切换一个从为主

#在配置文件中加入如下内容

replication:

oplogSizeMB: 128

replSetName: test


http://docs.mongodb.org/manual/tutorial/deploy-replica-set-for-testing/


结点类型

Primary,Secondaries,Arbiters(只投票,不复制数据)

1.在每个节点启动mongodb

/usr/local/mongodb/bin/mongod --dbpath /data/mongodb/ --replSet test --smallfiles --oplogSize 128

/usr/local/mongodb/bin/mongod --dbpath /data/mongodb/ --replSet test --smallfiles --oplogSize 128


#/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf

2.连接其中一个 mongodb shell

/usr/local/mongodb/bin/mongo

3.配置自己为其中一个节点

rsconf = {

_id: "test",

members: [

{

_id: 0,

host: "192.168.1.204:27017"

}

]

}

rs.initiate( rsconf )

4.在主节点上添加其他节点(在mognodb shell中提示符为PRIMARY>)

rs.add("192.168.1.204:27017")

rs.addArb("192.168.1.201:27017")

rs.remove("192.168.1.204:27017")

5.之后会自动重新选举一个新的主节点

6.使用配置文件的方法有配置文件中加入如下参数即可

replication:

replSetName: "repltest"

oplogSizeMB: 64

7.重新更新配置(更改主机,更改优先级)

cfg = rs.conf();

cfg.members[1].priority = 2;(0为不能为主)

cfg.members[0].hidden = true;(隐藏)

cfg.members[0].slaveDelay = 3600;(延时秒)

cfg.members[3].votes = 0;(无投票权)

rs.reconfig(cfg);

注意:

1.配置好后从是不能提供读的需要使用命令开启(在从上执行)

rs.slaveOk(); ===> db.getMongo().setSlaveOk()

2.主节点不允许直接优先级为0,应该先执行如下命令才能设置

rs.stepDown()

3.查看帮助

rs.help()

4.官方文档

http://docs.mongodb.org/manual/

5.测试语句

db.foo.save({"id":123,"name":'liuyuanshijie'});

db.foo.find({"id":123})


6.只有主能写,其他节点不可写,但可以设置为读


#配置时可以预先准备两个做主,配置完成后一个成为primary,另一个成为secondary

#然后通过设置给较高的优先级,当主挂了后,从会立即接管成为主。

#这样就可以使用keepalived在两个机器上配置VIP来做成高可用。

#使用检测脚本来检测两个服务器上的mongodb服务是否可用。


7.mongodb集群(Shard)

#主要功能是可以进行数据分片分散存储到各个机器

1.配置config server

cat >>/usr/local/mongodb/configsvr.conf <

systemLog:

destination: file

path: "/log/configsvr/configsvr.log"

logAppend: true

storage:

dbPath: "/data/configsvr"

mmapv1:

smallFiles: true

journal:

enabled: true

processManagement:

fork: true

pidFilePath: "/usr/local/mongodb/configsvr.pid"

net:

bindIp: 127.0.0.1,192.168.1.221

port: 20000

maxIncomingConnections: 1000000

http:

enabled: true

sharding:

clusterRole: configsvr

EOF


mkdir -pv /log/configsvr/ /data/configsvr

/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/configsvr.conf


2.配置mongos路由


cat >>/usr/local/mongodb/mongos.conf <

systemLog:

destination: file

path: "/log/mongos/mongos.log"

logAppend: true

sharding:

autoSplit: true

configDB: 192.168.1.221:20000

chunkSize: 32

processManagement:

fork: true

pidFilePath: "/usr/local/mongodb/mongos.pid"

net:

bindIp: 127.0.0.1,192.168.1.221

port: 30000

maxIncomingConnections: 1000000

http:

enabled: true

EOF

mkdir -pv /log/mongos/

/usr/local/mongodb/bin/mongos -f /usr/local/mongodb/mongos.conf


3.启动各个实例,或者配置replset


sharding:

clusterRole: shardsvr


4.添加shard到集群

#连接到mongos

/usr/local/mongodb/bin/mongo --host 192.168.1.221 --port 30000


#添加shard

sh.addShard( "192.168.1.222:27017" )

#如果是集群使用如下方法添加

sh.addShard( "rs1/lab1:27017,lab2:27017,lab3:27017" )


#如果不能添加先删除test数据库

use test

db.dropDatabase();


#查看shard

use admin

db.runCommand( {listshards : 1 } )

5.为数据库开启分片

sh.enableSharding("test")

use admin

db.runCommand( { enableSharding: test } )


6.测试

use admin

db.runCommand({enablesharding:"test2"}); //声明test2库允许分片

db.runCommand( { shardcollection : "test2.books", key : { id : 1 } } ); //声明books表要分片


use test2 //切换到test2

db.stats(); //查看数据库状态

db.books.stats(); //查看表状态


#添加数据

for (var i = 1; i <= 20000; i++) db.books.save({id:i,name:"12345678",sex:"male",age:27,value:"test"});


db.books.stats(); //查看表状态


#一次插入2W条数据,5秒左右才能平衡,你可以db.book.stats();

#重复这个命令,你会发现数据流的变化。


8.mongo php扩展安装

http://pecl.php.net/package/mongo



配置 数据 节点 文件 方法 命令 数据库 状态 集群 测试 两个 优先级 切换 服务 主从 主机 人员 信息 对象 思想 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 什么数据库检索速度快功能强大 网络安全手抄小报简单版带字 苏州dns服务器在哪个区 数据库的安全公司 网络安全法知情同意原则是什么 北流服务器运维 软件开发需要多少中间件 eclipse怎么连数据库 soul显示连接服务器错误 网络安全不信谣不传谣心得体会 电脑中如何打开文件服务器 计算机三级网络技术合格分数 电脑怎么连网络安全密钥是什么 数据库新增字段怎么写脚本 韩国服务器因维护而脱机怎么办 人工智能还是软件开发 电脑连不上数据库 pb与oracle数据库 安徽自动化上位机软件开发 长乐服务器阵列恢复 针对老年人网络安全问题提出建议 物联网智慧校园软件开发 数据库系统具有自由的数据类型吗 湖南软件开发好B 岚鸿 信息科技部网络安全保障工作 删阿安全狗服务器 网络安全与法治小报 高中生信息技术数据库 creo服务器 绝地求生如何快速更改服务器
0