我在ubuntu服务器上安装了mongo 3.0.0。我试图使用PHP(已安装适当的lib)连接到mongo,以学习新的东西。不幸的是,我不能再走了。我的用户配置如下所示:
> use testdb
switched to db testdb
> show users
{
"_id" : "testdb.testdb",
"user" : "testdb",
"db" : "testdb",
"roles" : [
{
"role" : "readWrite",
"db" : "testdb"
}
]
}
然后,我尝试执行以下PHP代码:
try{
$uri = "mongodb://testdb:[email protected]:27017/testdb";
$options = array("connectTimeoutMS" => 30000);
$client = new MongoClient($uri, $options );
}
catch(Exception $e) {
echo 'Message: ' .$e->getMessage();
die();
}
$db = $client->selectDB("testdb");
我收到“消息:无法连接至:xxx.xxx.xxx.xxx:27017:对用户名为'testdb'的数据库'testdb'身份验证失败:身份验证失败”。
在/etc/mongod.conf中,我没有注释“ auth = true”
我还用以下方法验证了该特许权:
> nc -w 3 -v xxx.xxx.xxx.xxx 27017 Connection to xxx.xxx.xxx.xxx 27017
> port [tcp/*] succeeded!
我通过Internet进行挖掘,已经花了几个小时,甚至重新安装了mongo并再次设置一切,但均未成功。您能否指出在哪里寻找解决方案?
3.0的身份验证架构与2.x驱动程序不兼容。您应该能够使其工作的一种方法是降级身份验证机制:
use "admin"
var schema = db.system.version.findOne({"_id" : "authSchema"})
schema.currentVersion = 3
db.system.version.save(schema)
然后创建一个用户,您应该可以与其连接。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句