gpt4 book ai didi

php - MongoDB PHP 未捕获 MongoDB\Driver\Exception\ConnectionTimeoutException : No suitable servers found

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

我被这个奇怪的问题困住了。

<?php
require_once __DIR__ . "/vendor/autoload.php";

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// connect to mongodb
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$command = new MongoDB\Driver\Command(array("ping" => 1));
$result = $manager->executeCommand("test", $command);

var_dump($result, $result->toArray());
?>

错误:

Fatal error: Uncaught MongoDB\Driver\Exception\ConnectionTimeoutException: No suitable servers found (`serverSelectionTryOnce` set): [connection refused calling ismaster on 'localhost:27017'] in /var/www/html/mongo.php:11 Stack trace: #0 /var/www/html/mongo.php(11): MongoDB\Driver\Manager->executeCommand('test', Object(MongoDB\Driver\Command)) #1 {main} thrown in /var/www/html/mongo.php on line 11

为什么奇怪?好吧,我已经尝试在互联网上搜索这个问题,人们总是说同样的话:

  1. MongoDB 服务器离线
  2. MongoDB 服务器数据已损坏

嗯...

它没有离线,我的 Java 应用程序(和“mongo”)可以很好地连接到 MongoDB 服务器,并且可以在不抛出 ConnectionTimeoutException 的情况下与数据库交互。

try {
mongoClient = new MongoClient( "localhost" );
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

它没有损坏,因为如果它损坏了,我将无法通过 Java 连接它(对吗?)

我已经尝试连接到 127.0.0.1 和本地主机,同样的问题。

我已经尝试重启 httpd 和 mongod,同样的问题。

我已经尝试将 MongoDB 服务器绑定(bind)到 0.0.0.0 而不是 127.0.0.1,同样的问题。

是的,MongoDB 驱动程序已安装,它们在 PHP Info 中处于事件状态。

MongoDB PHP 版本:1.2.1

MongoDB shell 版本:3.2.10(现已更新至3.4.0)

PHP 版本:7.0.13

最佳答案

好吧,我想我应该回来说说我是如何解决这个问题的(感谢@jmikola!)

https://github.com/mongodb/mongo-php-driver/issues/484

你需要使用

setsebool -P httpd_can_network_connect on

解决问题。

关于php - MongoDB PHP 未捕获 MongoDB\Driver\Exception\ConnectionTimeoutException : No suitable servers found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41057321/

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