mongodb3.0.3 添加认证用户和密码
首先在mongodb数据库没有开启认证的情况下登录,执行开启mongod进程的命令,最好不要使用管理员帐号来操作。
sudo /home/develop/mongodb/bin/mongod --dbpath=/home/develop/data/db/ --logpath=/home/develop/data/logs/my.log --logappend --port=27017 --fork
查看一下该进程是否成功
ps -ef|grep mongod
./bin/mongo
>use admin
> db.createUser(
{
user: "admin",
pwd: "123456",
roles:
[
{
role: "userAdminAnyDatabase",
db: "test"
}
]
}
)
这样就为admin创建了一个可以访问的用户了.
然后再杀掉mongod进程
pkill mongod
然后将锁定文件删除掉 (不删除掉该文件,接下来会有其他问题的)
rm mongod.lock
最后重启一下mongod进程,使用认证方式来开启,具体的linux命令为:
sudo /home/develop/mongodb/bin/mongod --dbpath=/home/develop/data/db/ --logpath=/home/develop/data/logs/my.log --logappend --port=27017 --fork --auth
./bin/mongo
>use admin
>db.auth('admin','123456');
>db.system.user.find()
然后具体到php代码上,连接mongodb的例子如下:
$m = new MongoClient("mongodb://admin:123456@128.0.0.1:27017/test");
$db = $m->test;
echo 'after new mongo<br/>';
$collection = $db->users;
$user = array('username'=>'areyouok','age'=>33);
$collection->insert($user);
$user = array('username'=>'howareyou','age'=>29,'sex'=>'famale');
$collection->insert($user);
$user = array('username'=>'howdoyoudo','mobile'=>'18611112222','age'=>33);
$collection->insert($user);
$cursor = $collection->find();
foreach($cursor as $obj)
{
echo $obj['username'].'<br/>';
}