0%

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

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

一般情况是这样连接的:

1
mongoClient.connect("mongodb://username:password@127.X.X.X:27017/db",{ useNewUrlParser: true ,useUnifiedTopology: true})

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

解决方法如下:

  1. 更换连接格式

    1
    2
    3
    4
    mongoose.connect(
    "mongodb://username:password@127.X.X.X:27017/db",
    {user: 'username', pass: 'password',useNewUrlParser: true ,useUnifiedTopology: true}
    );
  2. 开启 uri_decode_auth 功能,uri_decode_auth 在 driver 内部 decode连接串

    1
    2
    3
    4
    5
    6
    7
    8
    9
    mongoose.connect(
    "mongodb://username:password@127.X.X.X:27017/db",
    {
    uri_decode_auth: true,
    useNewUrlParser: true,
    useUnifiedTopology: true
    },
    function(err, db) {}
    );

欢迎关注我的其它发布渠道