1. 程式人生 > >php遠端連線MongoDB使用者認證錯誤問題

php遠端連線MongoDB使用者認證錯誤問題

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