MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Uwierzytelnianie rmongodb zawsze kończy się niepowodzeniem

Prawdopodobnie korzystasz z serwerowej wersji MongoDB 3.0 lub nowszej (seria 3.x, która jest obecnie pisana), która ma zaktualizowany mechanizm uwierzytelniania bezpieczeństwa ( SCRAM-SHA-1 od MONGODB-CR ), który nie jest kompatybilny ze starszymi wersjami sterowników, które go nie obsługują.

Stan na obecny rmongodb wydanie pakietu (wersja 1.8.0 pisania), ten sterownik jest oparty na implementacji starszego sterownika C, który nie jest kompatybilny z nowymi metodami uwierzytelniania. Jak wspomniano również w problemach z tym repozytorium , autor zwraca uwagę na tę zależność sterownika i stwierdza, że ​​pakiet wymagałby przepisania, aby wykorzystać nowy interfejs API, który obsługuje nową metodę uwierzytelniania.

W chwili pisania tego tekstu wydaje się, że nie ma żadnych ruchów, aby wprowadzić takie zmiany, poza ustanowieniem nowa gałąź który nie jest obecnie gotowy do wydania.

W związku z tym obecnie dostępne są następujące opcje:

  • W miarę możliwości pracuj bez uwierzytelniania
  • Zmień wersję serwera MongoDB na taką, która obsługuje stare uwierzytelnianie
  • Poszukaj innych implementacji sterowników, które obsługują nowe uwierzytelnianie.

Tak więc sam "rmongodb" nie może obecnie łączyć się z serwerami MongoDB 3.x. Zastosuj jedną z pozostałych opcji i/lub weź udział w tworzeniu repozytorium samodzielnie, jeśli jesteś w stanie przyspieszyć jego rozwój do następnej wersji z pełną obsługą uwierzytelniania.

Inne możliwe alternatywy sterowników są połączone lub omówione w zagadnieniu, do którego odnosi się ta odpowiedź.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. CRUD nodejs/express server:app.put req.body jest pusty

  2. Filtruj i ponownie uporządkuj wyniki za pomocą node.js i mongodb według daty (miesiąca)

  3. Dostęp do MongoDB z Go

  4. Wyodrębnianie, modelowanie i zmiana modelu danych za pomocą mongoid/mongodb

  5. MongoDB bind_ip error:bind() nie powiodło się errno:99 Nie można przypisać żądanego adresu do gniazda