mongo uri中用戶名和密碼包含特殊字符@和:

問(wèn)題提出:

熟悉mongodb的小伙伴們都知道,mongodb提供使用uri來(lái)訪問(wèn)mongodb中的某個(gè)數(shù)據(jù)庫(kù)。mongodb uri中包含了用戶名username、密碼password、主機(jī)ip、端口號(hào)port以及數(shù)據(jù)庫(kù)名dbname信息,且這些信息之間通常使用:或者@或者/來(lái)分隔。mongodb uri的一般格式為:

?String uri ="mongodb://username:password@127.0.0.1:27017/dbname";

顯而易見(jiàn),如果username或者password中包含@和:這兩個(gè)特殊字符的話(比如username為ab@c,password為al:ex),程序?qū)o(wú)法分辨真正的username和password。從而導(dǎo)致程序無(wú)法正常訪問(wèn)mongodb。


解決方案:

對(duì)username和password中包含的@和:進(jìn)行url編碼,@的url編碼為%40,:的編碼為%3a。(具體可以使用urlencode在線工具驗(yàn)證,網(wǎng)址:http://tool.chinaz.com/Tools/urlencode.aspx )

因此對(duì)于“username為ab@c,password為al:ex”這種情況,uri應(yīng)該改為如下:

?String uri ="mongodb://ab%40c:al%3aex@127.0.0.1:27017/dbname";

注意:此處的數(shù)據(jù)庫(kù)名不可缺少,否則訪問(wèn)可能報(bào)錯(cuò),可以參考:http://www.itdecent.cn/p/7657a275c422。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容