使用mongo php ext连接mongo数据库时超时
使用Ubuntu 12.04和php 5.6下的mongo php ext连接MongoDB数据库时超时 我正在使用使用mongo php ext连接mongo数据库时超时,php,mongodb,lxc,Php,Mongodb,Lxc,使用Ubuntu 12.04和php 5.6下的mongo php ext连接MongoDB数据库时超时 我正在使用 最新的Apache2.4 Ubuntu 12.04 PHP5.6和mongo ext版本1.6.14 MongoDB v3.4在lxc容器中运行 问题是当我连接到mongo数据库时 我正在使用此连接字符串: mongodb://myDbUser:passW0rT@0.0.0.0:27020/myDb (密码、数据库和地址已更改) 我已经验证安装了php mongo ext,代
- 最新的Apache2.4
- Ubuntu 12.04
- PHP5.6和mongo ext版本1.6.14
- MongoDB v3.4在lxc容器中运行
echo扩展插件加载(“mongo”)?“已加载”:“未加载\n”//印好了。
如果(类_存在('\MongoClient')){
echo“是Mongo客户端”。“\n”//这是打印的
}
否则{
回显“无Mongo客户端”。“\n”;
}
试一试{
$client=新的MongoClient('mongodb://myDbUser:passW0rT@0.0.0.0:27020/myDb',[]);
}捕获(例外$ex){
echo$ex->getMessage();//打印无法连接到:0.0.0.0:27020:连接超时
}
更奇怪的是,我可以使用连接到此数据库,除此之外,我还可以通过在我的计算机上运行的本地服务器连接到此数据库(Win 10)
当我使用security.authorization设置为enabled且无差异设置为disabled时,也会出现此问题–然后我使用dsnmongodb://0.0.0.0:27020
不幸的是,当我使用www(安装mongo数据库的服务器上的域)输入web地址时,服务器的响应总是出现超时错误
这可能是一个线索,安装mongo的服务器是作为容器运行的服务器,这意味着我必须添加端口号来连接,例如通过ssh
我甚至将服务器从ngix改为apache,问题并没有消失。您使用0.0.0.0的方式看起来是错误的;您正在尝试连接到本地计算机上的mongodb进程吗?如果是这样的话,我想您应该使用127.0.0.1。是的,到本地机器,但是这台机器作为容器工作,而不是作为具有正常ip访问的机器。我还需要提供连接端口。但我再次检查了它是否适用于127.0.0.1:27020,但行为略有不同。现在是没有滞后和反应是立即的。消息是:未能连接到:127.0.0.1:27020:连接被拒绝容器的类型为lxc我应该添加。非常感谢您的回复!听起来您可能需要检查lxc端口配置?谢谢您的帮助!我用0.0.0.0来隐藏真正的IP地址@文斯:你可以简单地添加你以前的评论作为这个问题的答案。解决方案不是使用127.0.0.1:27020(27020是mongoDB的端口),而是简单地使用127.0.0.1,我之前认为我必须添加端口,因为它不是默认值,比如:80,然后我想,一旦我存在并删除了端口,就可以了。刷新和什么?它起作用了!我很高兴你的帮助。所以写一个答案,我会把它标记为这个问题的解决方案。再次感谢您!解决方案:mongodb://myDbUser:passW0rT@127.0.0.1/myDb