Пароль с обратной косой чертой mlab [дубликат]

У меня была аналогичная проблема с использованием ggmap::geocode() для партии мест, где примерно 20% местоположений дали ошибку OVER QUERY LIMIT, даже если geocodeQueryCheck() будет показывать более чем достаточно запросов на геокодирование, и ошибки были спорадически разбросаны по всему места, а не только последние 20%. Если я повторю подмножество местоположений, которые не выполнялись в первый раз, снова большинство из них работало, поэтому мне пришлось перебирать меньшие подмножества, пока у всех не было геокодов.

ggmap v2.7 позволяет пользователю указать ключ API Карт Google через функцию register_google(). v2.7 еще не включен в CRAN, поэтому вам нужно использовать devtools::install_github("dkahle/ggmap") для его установки. После обновления до этой версии и установки моего API-ключа register_google(key = "my_api_key") одна и та же партия работала в одном прогоне, как и ожидалось.

Ключ API Карт Google легко получить: https: // разработчики. google.com/maps/documentation/geocoding/get-api-key

54
задан Amol M Kulkarni 24 January 2013 в 13:20
поделиться

10 ответов

использовать pwd вместо этого, который работал для меня для версии3.2

mongoose.connect('mongodb://localhost/test',
                 {user: 'username', pwd: 'p@ssword'},
                 callback);
4
ответ дан AKASH 18 August 2018 в 22:54
поделиться

иногда вам нужно подключиться к БД с помощью других инструментов , которые принимают строку только как строку подключения. поэтому просто измените знак @ на% 40

1
ответ дан dang 18 August 2018 в 22:54
поделиться
  • 1
    например, (не волнуйтесь, манекен пользователя и пароль) измените это: mongodb: // kipkip: Nolalola22 @@ ds031223.mlab.com: 3d223 / mishlo to: mongodb: // kipkip: Nolalola22%40@ds031223.mlab.com: 3d223 / mishlo – dang 12 January 2017 в 09:39

Если ваш пароль имеет специальные символы:

const dbUrl = `mongodb://adminUsername:${encodeURIComponent('adminPassword')}@localhost:27017/mydb`;
12
ответ дан Jalasem 18 August 2018 в 22:54
поделиться
  • 1
    это работает, когда я пробовал! и это просто логически правильно – Jalasem 23 February 2018 в 08:23

Используйте параметр options для вызова mongoose.connect , чтобы указать пароль, а не включать его в строку URL:

mongoose.connect('mongodb://localhost/test',
                 {user: 'username', pass: 'p@ssword'},
                 callback);
19
ответ дан JohnnyHK 18 August 2018 в 22:54
поделиться
Also, if your password contains a percentage, %, 
 Because the percent ("%") character serves as the indicator for percent-encoded octets, it must be percent-encoded as "%25" for that octet to be used as data within a URI

for example, if your password is John%Doe, the new transformed password will be John%25Doe or
If password is Paul%20Wait, New Password will be Paul%2520Wait

mongoClient.connect("mongodb://username:John%25Doe@host:port/dbname", function(err, db) {
// password is John%Doe
    }`enter code here`
);
0
ответ дан Oduwole Oluwasegun 18 August 2018 в 22:54
поделиться

Используйте этот синтаксис, не забудьте параметр uri_decode_auth.

mongoClient.connect("mongodb://username:p%40ssword@host:port/dbname", { 
    uri_decode_auth: true 
    }, function(err, db) {

    }
);
68
ответ дан philipvr 18 August 2018 в 22:54
поделиться
  • 1
    Этот ответ должен получить больше любви, он действительно просто преобразуется в символ @ до% 40, который делает трюк. – jonezy 29 June 2015 в 19:40
  • 2
    На первый взгляд я пропустил {uri_decode_auth: true}, но это сработало, как только я это заметил. Благодарю. – Mark Rendle 23 July 2015 в 17:08
  • 3
    Для noobies {uri_decode_auth: true} следует передавать как отдельный объект, если вы находитесь в NodeJS и используете собственный драйвер mongoDB. – Koushik Shom Choudhury 2 August 2018 в 15:01

Я также столкнулся с той же проблемой. Я решил, добавив закодированный пароль в строку подключения. И это хорошо работает.

(1) Кодируйте свой пароль с https://www.url-encode-decode.com (2) Замените свой пароль на закодированный. (3) Он должен хорошо работать.

Например: Фактический пароль: ABCDEX $ KrrpvDzRTy` @ drf. '; 3X Encoded Password: ABCDEX% 24KrrpvDzRTy% 60% 40drf.% 27% 3B3X

MongoDB: // user1: ABCDEX%24KprpvDzRTy%60%40drf.%27%3B3X@dstest.com: 1234, ds1234-test.com: 19889 / монго-DEV replicaSet = RS-ds123546978 & амп; = SSL правда» ,

1
ответ дан prisan 18 August 2018 в 22:54
поделиться

Ни одно из упомянутых выше решений не помогло мне. Я исследовал его дальше и выяснил, что мне нужно включить параметр useNewUrlParser.

mongoose.connect(db, {
    useNewUrlParser : true
    },
    err => {
    if (err){
        console.error('Error: ' + err)
    }
    else{
        console.log('Connected to MongoDb')
    }
})

Из того, что я понимаю, для этого вам нужна конкретная версия MongoDB. Для получения дополнительной информации проверьте Избегайте предупреждения «текущий синтаксический анализатор URL-адресов устарел», установив useNewUrlParser в true

. Чтобы избавиться от предупреждения, но, очевидно, версия также влияет на требуемый параметр.

Я не тестировал все специальные символы, но определенно работает с «@ # $».

Надеюсь, это поможет.

0
ответ дан Thierry 18 August 2018 в 22:54
поделиться

Попробуйте это, мои друзья:

    mongoose.connect("mongodb://localhost:27017/test?authSource=admin",
                     {user: 'viettd', pass: 'abc@123'});

test - мое имя db admin - мой db для аутентификации viettd - мое имя пользователя abc@123 - мой пароль

0
ответ дан Viet Tran 18 August 2018 в 22:54
поделиться
0
ответ дан lpacheco 30 October 2018 в 10:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: