Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
共享主机上的PHP MongoDB驱动程序未连接到atlas_Php_Mongodb_Mongodb Query_Mongodb Php_Mongodb Atlas - Fatal编程技术网

共享主机上的PHP MongoDB驱动程序未连接到atlas

共享主机上的PHP MongoDB驱动程序未连接到atlas,php,mongodb,mongodb-query,mongodb-php,mongodb-atlas,Php,Mongodb,Mongodb Query,Mongodb Php,Mongodb Atlas,使用mongodb驱动程序1.5.2从sharedhosting连接到mongodb atlas免费层,并尝试编写一个简单文档,会出现以下错误。我做错了什么 $manager = new MongoDB\Driver\Manager("mongodb://admin:admin@test-shard-00-00-rbgc.mongodb.net:27017/db?ssl=false&replicaSet=test-shard-0&authSource=admin&serv

使用mongodb驱动程序1.5.2从sharedhosting连接到mongodb atlas免费层,并尝试编写一个简单文档,会出现以下错误。我做错了什么

$manager = new MongoDB\Driver\Manager("mongodb://admin:admin@test-shard-00-00-rbgc.mongodb.net:27017/db?ssl=false&replicaSet=test-shard-0&authSource=admin&serverSelectionTryOnce=false");

var_dump($manager);

$bulk = new MongoDB\Driver\BulkWrite;

$bulk->insert(['x' => 1]);
$manager->executeBulkWrite('db.collection', $bulk);
致命错误:未捕获 MongoDB\Driver\Exception\ConnectionTimeoutException:没有合适的 找到服务器:serverselectiontimeoutms超时:[连接已关闭 在[test-shard-00-00-waf4c.mongodb.net:27017]中调用ismaster /Applications/AMPPS/www/mongodb/liveserver.php:63

当我卸载$manager时,我得到:

对象(MongoDB\Driver\Manager)#1(2){[“uri”]=>string(64) “管理员:admin@test-shard-00-00-rbgc.mongodb.net:27017/“[“集群”]=> 数组(0){}

我也尝试了以下方法,但错误仍然相同:

$manager = new MongoDB\Driver\Manager('mongodb://admin:admin@pirat-shard-00-00-vegbq.gcp.mongodb.net:27017/db?ssl=falseweak_cert_validation=false');

$bulk = new MongoDB\Driver\BulkWrite;


$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection2', $bulk);

连接字符串错误。新驱动程序和旧驱动程序有两个版本,两个版本均由atlas提供:

3.6+版本应为:

mongodb+srv://admin:admin@test-shard-rbgc.mongodb.net:27017/db?retryWrites=true
它是
mongodb+srv://
和一个带有小参数的碎片地址。它应该与mongodb-1.5配合使用。如果没有,请尝试旧版本:

3.4版本应为(一行):

它是
mongodb://
,url中复制集的所有成员的列表,参数中复制集的名称等


另外,请确保您的服务器的IP地址在atlas中被列入白名单。

连接字符串错误。新驱动程序和旧驱动程序有两个版本,两个版本均由atlas提供:

3.6+版本应为:

mongodb+srv://admin:admin@test-shard-rbgc.mongodb.net:27017/db?retryWrites=true
它是
mongodb+srv://
和一个带有小参数的碎片地址。它应该与mongodb-1.5配合使用。如果没有,请尝试旧版本:

3.4版本应为(一行):

它是
mongodb://
,url中复制集的所有成员的列表,参数中复制集的名称等



另外,确保您的服务器的IP地址在atlas中被列为白名单。

您可以从其他任何地方连接到它吗
telnet test-shard-00-00-rbgc.mongodb.net 27017
说“提供了nodename或servname,或者不知道”@AlexBlex我可以从我的本地机器连接到它,它在mongodb或libcrypto中不使用OpenSSL,而是使用安全传输和通用加密。你没有使用ssl-它在url中是
ssl=false
,是吗?尝试跟随并拆分连接字符串以匹配构造函数接口。您是否尝试使用所需的参数创建管理器?您所说的“some”是什么意思?只有3个,在问题中只使用1,将所有内容作为单个字符串。如果您尝试了其他内容,请使用您的尝试更新问题。您可以从其他任何位置连接到它吗
telnet test-shard-00-00-rbgc.mongodb.net 27017
说“提供了nodename或servname,或者不知道”@AlexBlex我可以从我的本地机器连接到它,它在mongodb或libcrypto中不使用OpenSSL,而是使用安全传输和通用加密。你没有使用ssl-它在url中是
ssl=false
,是吗?尝试跟随并拆分连接字符串以匹配构造函数接口。您是否尝试使用所需的参数创建管理器?您所说的“some”是什么意思?只有3个,在问题中只使用1,将所有内容作为单个字符串。如果你试过别的东西,请尝试更新问题。刚刚在Ubuntu Bionic上用php 7.2.10和mongodb 1.3.4进行测试,遗留连接可以正常工作。将mongodb驱动程序升级到1.5.3-它与新的v3.6连接url完美配合。如果您想检查其他设置,可以使用图片
docker pull alexblex/so-52627401
。这很公平。尝试联系主机支持。请清理您的收藏2并更改密码。恐怕我在那里做了一些插入测试。我想是的,你可以把图像拉出来检查一下。这是出版它的目的。我肯定是在传统url中使用了
ssl=true
。刚刚在Ubuntu Bionic上测试了php 7.2.10和mongodb 1.3.4,传统连接可以工作。将mongodb驱动程序升级到1.5.3-它与新的v3.6连接url完美配合。如果你想检查其他设置,这里有图像
docker pull alexblex/so-52627401
。公平足够地尝试联系主机支持。请清理您的收藏2并更改密码。恐怕我在那里做了一些插入测试。我想是的,你可以把图像拉出来检查一下。这是出版它的目的。我肯定是在遗留url中使用了
ssl=true