9
votes

mongodb dump échoue avec un message DNS impossible à annuler

J'utilise une version de serveur mongo db version shell MongoDB v4.0.16 installée sur une instance EC2.

Je peux accéder à l'instance à l'aide de la commande mongo

error parsing command line options: error parsing uri (mongodb+srv://dxxxxxxx:xxxxxx[]@cluster0-vxcen.gcp.mongodb.net/xxxxxxxxxx): lookup cluster0-vxcen.gcp.mongodb.net on 127.0.0.53:53: cannot unmarshal DNS message

J'essaye de me connecter à un mongo db Atlas pour obtenir la base de données en utilisant mongodump

mongodump --uri="mongodb+srv://dxxxxxxx:xxxxxx[][]@cluster0-vxcen.gcp.mongodb.net/xxxxxxxxxx"

Je rencontre des problèmes avec

mongo mongodb+srv://dxxxxxxx:xxxxxx[][]@cluster0-vxcen.gcp.mongodb.net 
MongoDB shell version v4.0.16
connecting to: mongodb://cluster0-shard-00-02-vxcen.gcp.mongodb.net.:27017,cluster0-shard-00-01-vxcen.gcp.mongodb.net.:27017,cluster0-shard-00-00-vxcen.gcp.mongodb.net.:27017/?authSource=admin&gssapiServiceName=mongodb&replicaSet=Cluster0-shard-0&ssl=true
2020-03-05T09:02:45.265+0000 I NETWORK  [js] Starting new replica set monitor for Cluster0-shard-0/cluster0-shard-00-02-vxcen.gcp.mongodb.net.:27017,cluster0-shard-00-01-vxcen.gcp.mongodb.net.:27017,cluster0-shard-00-00-vxcen.gcp.mongodb.net.:27017
2020-03-05T09:02:45.604+0000 I NETWORK  [ReplicaSetMonitor-TaskExecutor] Successfully connected to cluster0-shard-00-00-vxcen.gcp.mongodb.net.:27017 (1 connections now open to cluster0-shard-00-00-vxcen.gcp.mongodb.net.:27017 with a 5 second timeout)
2020-03-05T09:02:45.607+0000 I NETWORK  [js] Successfully connected to cluster0-shard-00-01-vxcen.gcp.mongodb.net.:27017 (1 connections now open to cluster0-shard-00-01-vxcen.gcp.mongodb.net.:27017 with a 5 second timeout)
2020-03-05T09:02:45.707+0000 I NETWORK  [js] changing hosts to Cluster0-shard-0/cluster0-shard-00-00-vxcen.gcp.mongodb.net:27017,cluster0-shard-00-01-vxcen.gcp.mongodb.net:27017,cluster0-shard-00-02-vxcen.gcp.mongodb.net:27017 from Cluster0-shard-0/cluster0-shard-00-00-vxcen.gcp.mongodb.net.:27017,cluster0-shard-00-01-vxcen.gcp.mongodb.net.:27017,cluster0-shard-00-02-vxcen.gcp.mongodb.net.:27017
2020-03-05T09:02:46.010+0000 I NETWORK  [js] Successfully connected to cluster0-shard-00-00-vxcen.gcp.mongodb.net:27017 (1 connections now open to cluster0-shard-00-00-vxcen.gcp.mongodb.net:27017 with a 5 second timeout)
2020-03-05T09:02:46.028+0000 I NETWORK  [ReplicaSetMonitor-TaskExecutor] Successfully connected to cluster0-shard-00-01-vxcen.gcp.mongodb.net:27017 (1 connections now open to cluster0-shard-00-01-vxcen.gcp.mongodb.net:27017 with a 5 second timeout)
2020-03-05T09:02:46.439+0000 I NETWORK  [js] Successfully connected to cluster0-shard-00-02-vxcen.gcp.mongodb.net:27017 (1 connections now open to cluster0-shard-00-02-vxcen.gcp.mongodb.net:27017 with a 5 second timeout)
Implicit session: session { "id" : UUID("1c7432d5-e09c-45f8-8d84-d47e4f572cbf") }
MongoDB server version: 4.2.3
WARNING: shell and server versions do not match
Error while trying to show server startup warnings: user is not allowed to do action [getLog] on [admin.]
MongoDB Enterprise Cluster0-shard-0:PRIMARY> 


1 commentaires

Quel est votre système d'exploitation? Essayez également de vous connecter avec mongo --uri="URI HERE" , cela devrait donner la même erreur. Vérifiez si cela vous aide


3 Réponses :


13
votes

Ceci est juste un cas de serveur DNS incompatible.

Localisez le fichier /etc/resolv.conf et remplacez le serveur de noms par 8.8.8.8 , et tout devrait fonctionner 8.8.8.8 . Si cela ne fonctionne pas, essayez 1.1.1.1 .


1 commentaires

Sur Ubuntu 18.04, c'est /etc/resolv.conf



2
votes

Ce problème est similaire à celui signalé ici . Le correctif pour changer resolv.conf comme ci-dessus ne semble pas persister les redémarrages. La solution de contournement proposée dans le lien ci-dessus consiste soit à utiliser une URL non srv, soit, d'une manière plus simple et pour autant que j'ai vu survit également aux redémarrages, est de supprimer le lien symbolique /etc/resolve.conf et de le remplacer par un /etc/resolve.conf statique fichier contenant le serveur DNS requis.

Une autre option, trouvée ici Suggère d'installer resolvconf (pour Ubuntu apt install resolvconf ), ajoutez la ligne nameserver 8.8.8.8 à /etc/resolvconf/resolv.conf.d/base , puis exécutez sudo resolvconf -u et pour être sûr que le service resolvconf restart . Pour vérifier, exécutez systemd-resolve --status .

Vous devriez voir sur la première ligne votre serveur DNS comme ici:

         DNS Servers: 8.8.8.8
          DNS Domain: sa-east-1.compute.internal
          DNSSEC NTA: 10.in-addr.arpa
                      16.172.in-addr.arpa


0 commentaires

0
votes

Dans certaines causes, par exemple dans un environnement où vous ne pouvez pas changer de résolveur, vous pouvez utiliser une URL de style ancien:

client = pymongo.MongoClient("mongodb://<username>:<password>@<cluster>...

Après modification de l'URL générée par cloud.mongodb.com Atlas dans la section Cluster -> Connect -> Choisissez une méthode de connexion -> Python - 3.4 ou version ultérieure

Cela a finalement commencé à fonctionner.

Ma configuration:

  • Ubuntu 18.04
  • Python 2.7.17 / 2.7.12
  • Pymongo 3.11.1
  • SDK Google Cloud 319.0.0


0 commentaires