使用 php 连接 mongodb

2023-11-22

如果密码有怎么办@在 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(使用前将#替换为@)

使用 php 连接 mongodb 的相关文章

随机推荐