gpt4 book ai didi

php - 无法使用 php 连接到 mongodb 数据库用户

转载 作者:可可西里 更新时间:2023-11-01 09:14:32 27 4
gpt4 key购买 nike

我的服务器上有一个正在运行的带有 auth=true 的 mongod。

如果我登录到我的管理员用户(从管理数据库),获取数据没有问题。

<?php
$connection = new Mongo("mongodb://admin:adminpass@127.0.0.1");

$db = $connection->selectDB( "mydb" );
$collection = $db->selectCollection( "user" );
var_dump($collection->findOne());
?>

但是如果我将第一行替换为

$connection = new Mongo("mongodb://mydbadmin:dbadminpass@127.0.0.1:27017");

它无法连接并出现如下错误:

Fatal error: Uncaught exception 'MongoConnectionException' with message 'Couldn't authenticate with database admin: username [mydbadmin]' in .....

所以问题是 new Mongo() 尝试将我的用户连接到 admin 数据库而不是“mydb”数据库。如何选择要连接的数据库?

编辑:

根据 http://php.net/manual/fr/mongo.construct.php
我试过了

$login = array("username" => "mydbadmin",
"password" => "dbadminpass",
"db" => "mydb",
"connect" => true
);

$connection = new Mongo("mongodb://localhost", $login);

但是

Couldn't authenticate with database mydb: username [mydbadmin]' in .....

最佳答案

好吧,如果您没有在构造函数中指定数据库,它默认使用 admin 数据库(如 Mongo::__construct -reference 中所述)。尝试以下操作:

$connection = new Mongo("mongodb://admin:adminpass@127.0.0.1/mydb");

注意主机部分之后的 /mydb,它让 PHP-api 连接到所需的数据库。

关于php - 无法使用 php 连接到 mongodb 数据库用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12527017/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com