起先使用mongodb來開發,未加上帳號密碼驗證功能. mongodb一直正常,準備放到線上之時加上帳號密碼功能,整個過程以下 html
增長mongodb帳號
增長用戶a_ttlsa_com對a_ttlsa_com這個庫有讀寫權限,密碼爲ttlsa.com.passwd mongodb
# mongo MongoDB shell version: 2.4.5 connecting to: test > use a_ttlsa_com switched to db a _ttlsa_com > db.addUser('a_ttlsa_com','ttlsa.com.passwd') { "user" : "a_ttlsa_com", "readOnly" : false, "pwd" : "48f7704260bf8c966fcdec40915f5c22", "_id" : ObjectId("52327181611f841827ccae9d") } >
PHP鏈接mongodb配置
我這邊是yii框架,鏈接方式大同小異 shell
'mongodb' => array( 'class' => 'EMongoDB', 'connectionString' => 'mongodb://a_ttlsa_com:ttlsa.com.passwd@192.168.50.101', 'dbName' => 'a_ttlsa_com', 'fsyncFlag' => true, 'safeFlag' => true, 'useCursor' => false ),
打開頁面,出現以下報錯 數據庫
EMongoDB failed to open connection: Failed to connect to: 192.168.50.101:27017:Authentication failed on database 'admin' with username 'a_ttlsa_com': auth fails bash
用戶密碼密碼都是正確,爲何會去鏈接admin數據庫,是否是有點莫名其妙,其實這邊犯了一個錯誤。mongodb的鏈接字符串後面要加上庫名,不然他默認會去鏈接admin庫,因此配置文件後面的dbName實際上和鏈接徹底沒有關係. 框架
配置文件修改成以下 運維
'mongodb' => array( 'class' => 'EMongoDB', 'connectionString' => 'mongodb://a_ttlsa_com:ttlsa.com.passwd@192.168.50.101/a_ttlsa_com', 'dbName' => 'a_ttlsa_com', 'fsyncFlag' => true, 'safeFlag' => true, 'useCursor' => false ),
恢復正常. yii
來源網站: 運維生存時間 網址:http://www.ttlsa.com/html/2981.html 網站