3.2.3 - 严重 - 未处理
1.数据库连接采用$mongo = new MongoClient("mongodb://root:123456@localhost:27017/admin");这种形式时,当密码包含特殊字符 @ 的时候,连接会报错!
解决方案是,用下面的连接方式:
$mongo = new MongoClient("mongodb://localhost:27017", array('username'=>'root','password'=>'123456','db'=>'admin'));
2.当mongo设置了超级用户后,虽然该用户有管理所有数据库的权限,但该用户并不能直接连接新创建的数据库,而是需要先在admin库验证后,才可以操作普通库test,如下操作:
$mongo = new MongoClient("mongodb://localhost:27017", array('username'=>'root','password'=>'123456','db'=>'test'));
会报错,需要验证身份,正确的操作如下:
先在admin库验证身份:
$mongo = new MongoClient("mongodb://localhost:27017", array('username'=>'root','password'=>'123456','db'=>'admin'));
再选择一个其他库test进行操作:
$db = $mongo->selectDB('test'); //选择数据库
这样就不会报错了。
