2019-12-18PHP的mongodb扩展

2019-12-18PHP的mongodb扩展

方法一             2019-12-18PHP的mongodb扩展

方法二      

• 大家还可以到pecl官网上下载mongodb的扩展源码包
• cd /usr/local/src/
• wget https://pecl.php.net/get/mongodb-1.3.0.tgz
• tar zxvf mongodb-1.3.0.tgz
• cd mongodb-1.3.02019-12-18PHP的mongodb扩展
• /usr/local/php/bin/phpize2019-12-18PHP的mongodb扩展
• ./configure --with-php-config=/usr/local/php-fpm/bin/php-config2019-12-18PHP的mongodb扩展
• make && make install2019-12-18PHP的mongodb扩展2019-12-18PHP的mongodb扩展2019-12-18PHP的mongodb扩展
• vi /usr/local/php-fpm/etc/php.ini //增加 extension = mongodb.so2019-12-18PHP的mongodb扩展
• /usr/local/php-fpm/bin/php -m2019-12-18PHP的mongodb扩展

重启php 服务2019-12-18PHP的mongodb扩展

 

PHP的mongo扩展2019-12-18PHP的mongodb扩展

•到pecl官网上下载mongo的扩展源码包
• cd /usr/local/src/
• wget https://pecl.php.net/get/mongo-1.6.16.tgz

2019-12-18PHP的mongodb扩展

• tar zxvf mongodb-1.6.16.tgz
• cd mongodb-1.6.16
• /usr/local/php/bin/phpize2019-12-18PHP的mongodb扩展
• ./configure --with-php-config=/usr/local/php/bin/php-config
• make && make install2019-12-18PHP的mongodb扩展
• vi /usr/local/php/etc/php.ini //增加 extension = mongo.so
• /usr/local/php/bin/php -m2019-12-18PHP的mongodb扩展

 

测试

2019-12-18PHP的mongodb扩展

• 参考文档 https://docs.mongodb.com/ecosystem/drivers/php/
• http://www.runoob.com/mongodb/mongodb-php.html
 
• vi /usr/local/apache2/htdocs/1.php //增加
2019-12-18PHP的mongodb扩展2019-12-18PHP的mongodb扩展
<?php

$m = new MongoClient(); // 连接

$db = $m->test; // 获取名称为 "test" 的数据库

$collection = $db->createCollection("runoob");

echo "集合创建成功";

?>

• curl  localhost/1.php2019-12-18PHP的mongodb扩展
查看是否创建成功
 

暂时关闭密码认证2019-12-18PHP的mongodb扩展2019-12-18PHP的mongodb扩展

重启2019-12-18PHP的mongodb扩展

2019-12-18PHP的mongodb扩展2019-12-18PHP的mongodb扩展

 

 mongodb副本集介绍

2019-12-18PHP的mongodb扩展

副本集架构图

2019-12-18PHP的mongodb扩展2019-12-18PHP的mongodb扩展2019-12-18PHP的mongodb扩展

mongodb副本集搭建

 

• 三台机器: 192.168.133.130(primary)   192.168.133.132(secondary) 192.168.133.133(secondary)
 
三个机器都需要安装MongoDB
2019-12-18PHP的mongodb扩展21NOSQL/mongodb_rpm包 - master - 代码浏览 - yuanke_centos7 - aminglinux  https://coding.net/u/aminglinux/p/yuanke_centos7/git/tree/master/21NOSQL/mongodb_rpm%E5%8C%85
 
 
• 编辑三台机器的配置文件,更改或增加:
• replication://把此行前面的#删除2019-12-18PHP的mongodb扩展2019-12-18PHP的mongodb扩展2019-12-18PHP的mongodb扩展
• ##oplog大小
• oplogSizeMB: 20//前面有两个空格
• ##复制集名称
• replSetName: aminglinux//前面有两个空格
• 分别重启三台机器2019-12-18PHP的mongodb扩展2019-12-18PHP的mongodb扩展2019-12-18PHP的mongodb扩展

 

 

• 连接主,在主上运行命令mongo2019-12-18PHP的mongodb扩展

>use admin

>config={_id:"aminglinux",members:[{_id:0,host:"192.168.133.130:27017"},{_id:1,host:"192.168.133.132:27017"},{_id:2,host:"192.168.133.133:27017"}]}2019-12-18PHP的mongodb扩展

>rs.initiate(config)2019-12-18PHP的mongodb扩展

OK1表示成功

• rs.status() //查看状态2019-12-18PHP的mongodb扩展2019-12-18PHP的mongodb扩展2019-12-18PHP的mongodb扩展2019-12-18PHP的mongodb扩展
• 如果两个从上的状态为"stateStr" : "STARTUP", 则需要进行如下操作
(有一会自动成为primary)
如果要指定哪一台成为primary就到哪台机器执行下面命令
•> var config={_id:"aminglinux",members:[{_id:0,host:"192.168.133.130:27017"},{_id:1,host:"192.168.133.132:27017"},{_id:2,host:"192.168.133.133:27017"}]}
• >rs.reconfig(config)
• 此时再次查看rs.status()会发现从的状态变为SECONDARY2019-12-18PHP的mongodb扩展

 

• 主上建库,建集合
• >use mydb
• >db.acc.insert({AccountID:1,UserName:"123",password:"123456"})
2019-12-18PHP的mongodb扩展
• >show dbs
 
机器1         2019-12-18PHP的mongodb扩展
• 从上查看
机器2、32019-12-18PHP的mongodb扩展
 
• >show dbs  
• 若出现错误Error: listDatabases failed:{ "note" : "from execCommand", "ok" : 0, "errmsg" : "not master" },需要执行
• >rs.slaveok()

2019-12-18PHP的mongodb扩展

 

模拟权重更改

查看权重值2019-12-18PHP的mongodb扩展2019-12-18PHP的mongodb扩展2019-12-18PHP的mongodb扩展

• 主上执行 iptables -I INPUT -p tcp --dport 27017 -j DROP
 
机器1 已不能获取状态值2019-12-18PHP的mongodb扩展
 
机器2状态值已改变   2019-12-18PHP的mongodb扩展2019-12-18PHP的mongodb扩展
 
 
•默认三台机器权重都为1,如果任何一个权重设置为比其他的高,则该台机器马上切换为primary角色,所以我们预设三台机器的权重分别为:130:3,132:2,133:1
• 在主上执行
• cfg = rs.conf()             2019-12-18PHP的mongodb扩展
• cfg.members[0].priority = 3
• cfg.members[1].priority = 2
• cfg.members[2].priority = 1
• rs.reconfig(cfg)2019-12-18PHP的mongodb扩展
查看新的权重2019-12-18PHP的mongodb扩展2019-12-18PHP的mongodb扩展
这样的话,第二个节点将会成为候选主节点。