php遠端連線MongoDB使用者認證錯誤問題
阿新 • • 發佈:2019-01-29
php mongo擴充套件安裝好了之後,本地除錯沒問題,結果遠端連線別的電腦上mongodb資料庫時候,始終出現問題
try{
$m = new MongoClient("10.100.0.159:27017");
$db = $m->smaap;
$db-> authenticate("xxxx","xxxx");
}
catch (Exception $e){
echo $e->getMessage();
exit();
}
本機和需要連線的電腦在一個網段內,使用者名稱和密碼也沒問題,結果老是彈出問題:
Failed to connect to: 10.100.0.159:27017: Authentication failed on database ‘xxxx’ with username ‘xxxx’: auth failed
各種除錯,各種搜尋,貌似別人都沒有出現這個問題啊,百思不得其解。最後終於搜到了這篇文章,http://blog.csdn.net/zz87541368/article/details/45023895
結果phpinfo()也是出現了這篇文章的現象。
上mongo的官方文件中查詢一番,關於mongodb的認證機制:
MongoDB’s default authentication method is a challenge and response mechanism (SCRAM-SHA-1). Previously, MongoDB used MongoDB Challenge and Response (MONGODB-CR) as the default.
mongo3.0之後就不使用MONGO-CR作為預設的使用者認證方式了,預設的是SCRAM-SHA-1
趕快到phpinfo mongo部分看到:
Supported Authentication Mechanisms | - |
---|---|
MONGODB-CR (default) | enabled |
MONGODB-X509 | enabled |
GSSAPI(Kerberos) | enabled |
PLAIN | enabled |
沒有SCRAM-SHA-1