mongodb密码特殊字符的解决方法

4,119 阅读1分钟

一般是这么连接的:

mongoose.connect("mongodb://username:password@127.X.X.X:27017/db");

但是,如果你的密码里面设置了特殊字符,比如‘@’,‘%’,可能使得 mongodb 连接不能被正常解析,字符转义也没什么效果,从而导致连接失败。

有2个方法可以规避这个问题:

1.更换连接格式

mongoose.connect(
	"mongodb://username:password@127.X.X.X:27017/db",
	{user: 'username', pass: 'password'}
);

2.开启 uri_decode_auth 功能

uri_decode_auth 在 driver 内部 decode连接串

mongoose.connect(
	"mongodb://username:password@127.X.X.X:27017/db", 
	{
  		uri_decode_auth: true
  	},
  	 function(err, db) {}
);