2016-04-01 15 views
1

başarısız bir php7 + mongodb 3.2 bir ubuntu yığınında:php7 mongodb kimlik ı yüklemiş

pecl ben de son php paketi mongodb/mongodb kullanıyorum

(bu > 5.99.99 için yeni sürücü) MongoDB yüklemek sarıcı olarak.

ama kullanıcının kimliğini doğrulamak için sorunlar var.

new \MongoDB\Client('mongodb://root:[email protected]:27017'); 

o kimlik doğrulama bir kabuk Mongo müşteri ile iyi çalışır sürücü MONGODB-CR (> 3.0 kullanımdan kaldırılmış) olarak yerine Tabii SCRAM-SHA-1

ait doğrulamaya çalışıyor, kimlik doğrulama mekanizması nedeniyle başarısız:

mongo someip:27017/admin -u root -p "123456" 

soru, nasıl php sürücü kimlik doğrulama mekanizmasını belirtebilirim? Bunu belirtmek için herhangi bir seçenek yoktur, (\MongoDB\Client yapıcı bazı dizi $driverOptions = [] kabul eder)?

Teşekkürler!

cevap

2

son sürücüsünü kullandığınızdan emin olun. yeni varsayılan olarak SCRAM-SHA-1 olmalıydı. php7, ubuntu14, MongoDB v3.2.x, mongo-php-library =^1.0.0 ve mongodb php driver v1.1.5:

Bir ortamda testi yaptı. Hangisi beklendiği gibi çalışır.

$client = new MongoDB\Client("mongodb://user:[email protected]:port/admin?authMechanism=SCRAM-SHA-1"); 

kullandığınız takdirde Yaylanmak-SHA-1 belirtmek gerekmez rağmen, aynı zamanda, çalışır:

require_once __DIR__ . "/vendor/autoload.php"; 
$client = new MongoDB\Client("mongodb://user:[email protected]:port/admin"); 
$collection = $client->selectCollection("databaseName", "collection"); 
$cursor = $collection->find(); 

foreach ($cursor as $document) { var_dump($document); } 

Ben de örneğin URI'de authMechanism seçeneği test ettik yeni PHP sürücüsü. php --ri mongodb çalıştırırsanız, (v1.1.5 için) ile benzer bir şey görüyorsunuz:

mongodb 
mongodb support => enabled 
mongodb version => 1.1.5 
mongodb stability => stable 
libmongoc version => 1.3.3 
libbson version => 1.3.3