文章目录[隐藏]
添加Mongodb的yum源 [10gen]name=10gen Repositorybaseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64gpgcheck=0 ?安装mongodb yum install mongo-10gen mongo-10gen-server ?配置Mongodb vim?/etc/mongod.conf 如果启动程序要连接的话,这
添加Mongodb的yum源
[10gen]name=10gen Repositorybaseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64gpgcheck=0
?安装mongodb
yum install mongo-10gen mongo-10gen-server
?配置Mongodb
vim?/etc/mongod.conf
如果启动程序要连接的话,这里bind_ip写为0.0.0.0
logpath=/var/log/mongo/mongod.logport=27017dbpath=/var/lib/mongobind_ip=0.0.0.0
?启动mongodb服务
service mongod start
?加入开机启动
chkconfig --levels 235 mongod on
?测试mongodb
mongo> use testswitched to db test> db.foo.find()> db.foo.save({a: 1})> db.foo.find(){ "_id" : ObjectId("4b8ed53c4f450867bb35a1a9"), "a" : 1 }> db.foo.update( {a: 1}, {a: 5})> db.foo.find(){ "_id" : ObjectId("4b8ed53c4f450867bb35a1a9"), "a" : 5 }
?防火墙处理
IPTABLES -A INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT
?测试远程连接
mongo server:port/database## Example ##mongo 10.0.10.45:27017/test
安装后的配置
此处参考?http://blog.51yip.com/nosql/1575.html
掌握权限,理解下面4条基本上就差不多
1,mongodb是没有默认管理员账号,所以要先添加管理员账号,在开启权限认证。
2,切换到admin数据库,添加的账号才是管理员账号。
3,用户只能在用户所在数据库登录,包括管理员账号。
4,管理员可以管理所有数据库,但是不能直接管理其他数据库,要先在admin数据库认证后才可以。这一点比较怪
添加管理员账号
mongo MongoDB shell version: 2.4.6 connecting to: tank use admin //切换到admin数据库 switched to db admin show collections; system.indexes system.users //用户表 db.system.users.find(); //用户表没有数据 b.addUser('tank','test'); //添加一个管理员账号 { "user" : "tank", "readOnly" : false, "pwd" : "988432606980d0695e4f668f6bbc643a", "_id" : ObjectId("529e5d543b6a4608ac833429")
开启动用户权限认证
vim /etc/mongodb.conf //将auth=true前面的注释拿掉 /etc/init.d/mongod restart //重启生效
?php中连接mongodb
php客户端连接
1, 推荐方法一
$mongo = new Mongo(); $db = $mongo->selectDB('tank'); //切换到tank数据库 $db->authenticate("tank3", "test"); //认证 $users= $db->selectCollection("users"); //选取users表 $cursor = $users->find(); //读取数据 foreach ($cursor as $<a>本文来源gao*daima.com搞@代#码&网6</a>id => $value) { echo "$id: "; print_r($value); echo "</br>"; }
这种方式比较好理解,根命令行下的操作过程差不多。
2,推荐方法二
$mongo = new Mongo("mongodb://tank3:[email protected]:27017/tank"); //认证用户,这里的数据库,只启认证作用 $db = $mongo->selectDB('tank'); //选取数据库 $users= $db->selectCollection("users"); $cursor = $users->find(); foreach ($cursor as $id =>$value) { echo "$id: "; print_r($value); echo "</br>"; }