欢迎您来到腾讯云!积分商城

腾讯云腾讯云论坛

 找回密码
 立即注册
忘了密码?

扫一扫,访问微社区

快捷导航
搜索
查看: 2401|回复: 1

[已解决] php使用mongodb扩展无法连接mongo数据库

[复制链接]

1

主题

0

好友

45

积分

小白[LV1]

Rank: 1

云币
20
威望
20
发表于 2016-6-13 21:51:30 |显示全部楼层
代码如下:
  1. <?php
  2. require_once('vendor/autoload.php');

  3. use Illuminate\Database\Capsule\Manager;
  4. use Jenssegers\Mongodb\Eloquent\Model;
  5. use Jenssegers\Mongodb\Connection;
  6. use Illuminate\Events\Dispatcher;
  7. use Illuminate\Container\Container;

  8. $config = [
  9.     'default' => [
  10.         'driver'   => 'mongodb',
  11.         'host'     => 'host',
  12.         'port'     => port,
  13.         'database' => 'mum_union',
  14.         'username' => 'rwuser',
  15.         'password' => '*****',
  16.         'options'  => [
  17.             'database' => 'admin',
  18.             'authMechanism' => 'MONGODB-CR'
  19.         ]
  20.     ]
  21. ];

  22. $resolver = Model::getConnectionResolver();
  23. $dbManager = new Manager();
  24. $dbManager->getDatabaseManager()->extend('mongodb', function($config) {
  25.     return new Connection($config);
  26. });
  27. $dbManager->addConnection($config['default'], 'default');
  28. $dbManager->setAsGlobal();
  29. $dbManager->bootEloquent();

  30. $feed = Manager::connection('default')->collection('group_feeds')->first();
  31. var_dump($feed);
复制代码
依赖如下:
  1. {
  2.     "require": {
  3.         "jenssegers/mongodb": "^3.0"
  4.     }
  5. }
复制代码
报错如下:
  1. PHP Fatal error:  Uncaught exception 'MongoDB\Driver\Exception\AuthenticationException' with message 'Failed to send "saslStart" command with database "admin": Failed to read 4 bytes from socket within 300000 milliseconds.' in /data/workman_application/vendor/mongodb/mongodb/src/Operation/Find.php:180
  2. Stack trace:
  3. #0 /data/workman_application/vendor/mongodb/mongodb/src/Operation/Find.php(180): MongoDB\Driver\Server->executeQuery('mum_union.group...', Object(MongoDB\Driver\Query), Object(MongoDB\Driver\ReadPreference))
  4. #1 /data/workman_application/vendor/mongodb/mongodb/src/Collection.php(439): MongoDB\Operation\Find->execute(Object(MongoDB\Driver\Server))
  5. #2 [internal function]: MongoDB\Collection->find(Array, Array)
  6. #3 /data/workman_application/vendor/jenssegers/mongodb/src/Jenssegers/Mongodb/Collection.php(41): call_user_func_array(Array, Array)
  7. #4 /data/workman_application/vendor/jenssegers/mongodb/src/Jenssegers/Mongodb/Query/Builder.php(317): Jenssegers\Mongodb\Collection->__call('find', Array)
  8. #5 /data/workman_applicatio in /data/workman_application/vendor/mongodb/mongodb/src/Operation/Find.php on line 180
复制代码
经确认,连接本地mongodb是没有问题的。请问是不是腾讯云mongodb不支持mongodb扩展,如果支持该如何连接?

2

主题

0

好友

380

积分

腾讯云专家团

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

云币
1100
威望
380
发表于 2016-6-27 20:04:56 |显示全部楼层
您好,据您贴出的报错信息,认证的时候是走到了SCRAM-SHA-1方式,而非MONGODB-CR,所以这里得确认一下您的这种用法底层到底支不支持传参
  1. 'options'  => [
  2.     'database' => 'admin',
  3.     'authMechanism' => 'MONGODB-CR'
  4. ]
复制代码
或者应该换一个什么样的方式传。

请问您这是用的什么框架呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
您需要登录后才可以发帖 QQ登录

联系我们|腾讯云平台|积分商城|腾讯云官方论坛    

GMT+8, 2018-12-17 21:22 , Processed in 1.169608 second(s), 28 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部