解決PHP使用普通帳號鏈接mongodb報錯問題

起先使用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 網站

相關文章
相關標籤/搜索