php mongodb 连接失败,解决PHP使用普通账号连接mongodb报错问题
起先使用mongodb來開發,未加上賬號密碼驗證功能. mongodb一直正常,準備放到線上之時加上賬號密碼功能,整個過程如下
增加mongodb賬號
增加用戶a_ttlsa_com對a_ttlsa_com這個庫有讀寫權限,密碼為ttlsa.com.passwd
# 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框架,連接方式大同小異
'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
用戶密碼密碼都是正確,為什么會去連接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
),
恢復正常.
來源網站:? 運維生存時間??? 網址:http://www.ttlsa.com/html/2981.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的php mongodb 连接失败,解决PHP使用普通账号连接mongodb报错问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓 14 有望支持索尼 PS5 Dua
- 下一篇: vue.js 多页 php,如何使用 v