如果密码有怎么办@
在 mongodb 连接中
mongodb://[用户名:密码@]主机1[:端口1][主机2[:端口2:],...]/db
认为username='abc'
and password='abc@123'
在 php 中我们创建 mongodb 实例,例如
$m = new Mongo('mongodb://[abc:abc@123@]localhost/abc');
然后它给出这样的错误
致命错误:未捕获的异常“MongoConnectionException”,消息为“无法获取 123@]localhost 的主机信息”
那么如何解决此类问题..
Option 1
通过第二个参数将凭据传递给Mongo构造函数
$db = new Mongo('mongodb://localhost', array(
'username' => 'abc',
'password' => 'abc@123',
'db' => 'abc'
));
Option 2
Use the MongoDB::authenticate() method
$m = new Mongo();
$db = $m->abc;
$db->authenticate('abc', 'abc@123');
记住...
此方法有一个主要缺点:如果连接断开然后重新连接,则新连接将无法通过身份验证。如果您使用 URI 格式,则每当建立新连接时,PHP 驱动程序都会自动对用户进行身份验证。
2014年更新
实例化Mongo
直接现在已被弃用。建议是使用MongoClient
而是使用与上面相同的参数。例如
$m = new MongoClient('mongodb://localhost', [
'username' => 'abc',
'password' => 'abc@123',
'db' => 'abc'
]);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)