热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在mongodb上不能使用PHP进行身份验证吗?-Can'tauthenticateonmongodbwithPHP

Whativedone:我所做的:Enabledauthenticationinetcmongod.conf:在etcmongod.启用身份验证配置:autht

What i've done:

我所做的:

Enabled authentication in /etc/mongod.conf :

在/etc/mongod.启用身份验证配置:

auth = true

Created the first user from the shell as stated in the doc :

如doc所述,从shell中创建第一个用户:

db.createUser(
{
    user: "admin",
    pwd: "admin",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})

Using the admin user, i've created a root user to access mongodb:

使用admin用户,我创建了一个根用户来访问mongodb:

db.createUser(
{
    user: "root",
    pwd: "root",
    roles: [ "root" ]
})

Until this point all works fine, as i can authenticate from the mongo shell with:

在此之前,一切正常,我可以从mongo shell通过以下身份验证:

mongo --port 27017 -u root -p root  admin

and it works perfectly, as i can make all operations in the db.

它工作得很好,因为我可以在db中进行所有操作。

The problem:

存在的问题:

when i try to authenticate from PHP using the same root user:

当我尝试使用相同的根用户从PHP进行身份验证时:

$client = new MongoClient("mongodb://root:root@localhost:27017/admin");

It gives the error:

这给了错误:

Failed to connect to: localhost:27017: Authentication failed on database 'admin' with username 'root': auth failed

未能连接到:localhost:27017:用户名“root”的数据库“admin”的身份验证失败

Why can't PHP authenticate on mongodb if authenticating with the same credentials works fine from the mongo shell?

如果在mongo shell中使用相同的凭证进行身份验证,为什么PHP不能在mongodb上进行身份验证呢?

Other notes:

另注:

  • If I disable authentication PHP connects perfectly, and the mongo classes work fine
  • 如果我禁用身份验证,PHP就能完美连接,mongo类也能正常工作
  • I've tried to create different users, but the response is the same
  • 我尝试过创建不同的用户,但是响应是相同的
  • I am using Mongo 3.0.1, PHP 5.5.9 and Ubuntu 14.04.2 LTS 64bit
  • 我正在使用Mongo 3.0.1, PHP 5.5.9和Ubuntu 14.04.2 LTS 64位

3 个解决方案

#1


20  

Problem solved: apparenty it was caused by a problem/bug in the PHP mongo driver version 1.4

问题解决:很明显,它是由PHP mongo驱动程序1.4中的一个问题/bug引起的

I've upgraded the driver to version 1.6 with:

我已经将驱动升级到1.6版本:

pecl upgrade mongo

and now the authentication works.

现在认证工作了。

#2


2  

I've had the same problem, in my case I've installed mongo using apt-get

我也遇到过同样的问题,我用apt-get安装了mongo

apt-get install php5-mongo

And seems that Ubuntu repositories has still the version 1.4 and hasn't updated the package yet. If you want to install mongo on Ubuntu you should use the pecl option

看起来Ubuntu存储库仍然有1.4版本,并且还没有更新包。如果你想在Ubuntu上安装mongo,你应该使用pecl选项

pecl install mongo

Never use apt-get for installing mongo for php.

永远不要使用apt-get来为php安装mongo。

#3


-1  

according to mongo installation instructions in windows versions the mongo.dll must copy to system path e.g. c:\windows. i tested that and yes it works.

根据mongo安装说明在windows版本的mongo。dll必须拷贝到系统路径,例如c:\windows。我测试了一下,确实有效。


推荐阅读
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 本文介绍了brain的意思、读音、翻译、用法、发音、词组、同反义词等内容,以及脑新东方在线英语词典的相关信息。还包括了brain的词汇搭配、形容词和名词的用法,以及与brain相关的短语和词组。此外,还介绍了与brain相关的医学术语和智囊团等相关内容。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
author-avatar
qq2304944703
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有