come posso connettermi a un server mongo remoto da un terminale Mac OS


101

Vorrei entrare nella shell mongo nel terminale del mio MacBook. Tuttavia, mi interessa connettermi a un'istanza Mongo in esecuzione nel cloud (istanza compose.io tramite l'addon Heroku). Ho il nome, la password, l'host, la porta e il nome del database dall'URI MongoDB:

mongodb://username:password@somewhere.mongolayer.com:10011/my_database

Ho installato mongodb sul mio MacBook usando Homebrew non perché voglio che Mongo sia in esecuzione sul mio Mac, ma solo per avere accesso al programma mongo shell per connettermi a questo database remoto.

Tuttavia, non riesco a trovare il comando giusto per ottenere l'accesso completo alla shell che vorrei. Usando le istruzioni trovate qui http://docs.mongodb.org/manual/reference/program/mongo/ (cerca "remote") sono in grado di ottenere quella che sembra una connessione, ma senza fornire il mio nome utente o la password non lo sono completamente connesso. L'esecuzione db.auth(username, password)restituisce 1 (al contrario di "autenticazione non riuscita" quando fornisco nome utente e password errati), ma continuo a ricevere un messaggio di errore "non autorizzato" quando eseguo il show dbscomando.

Risposte:


170

Probabilmente ti stai connettendo bene ma non hai privilegi sufficienti per eseguire show dbs.

Non è necessario eseguire db.auth se si passa l'autenticazione nella riga di comando:

mongo somewhere.mongolayer.com:10011/my_database -u username -p password

Una volta connesso, riesci a vedere le raccolte?

> show collections

Se è così va tutto bene e semplicemente non hai i privilegi di amministratore per il database e non puoi eseguire il file show dbs


Sono in grado di connettermi usando la tecnica che descrivi. Tuttavia, non posso eseguire alcun comando, come "mostra raccolte" o "mostra utenti". Mi piacerebbe ricevere un errore "non autorizzato per query su my_db.system.namespaces".
jononomo

1
Ok, quindi heroku ha chiamato a caso il mio database mongo con un nome diverso da quello che ho usato in dev. Penso che fosse fondamentalmente il mio problema.
jononomo

1
Ma se ho? AuthSource = admin alla fine. Non funziona. --authenticationDatabase non aiuta.
Roman Kazanovskyi

27017 è la porta predefinita però. nel caso in cui la porta di esempio non funzioni. docs.mongodb.com/manual/reference/default-mongodb-port
modifica il


0

Un altro modo per farlo è:

mongo mongodb://mongoDbIPorDomain:port
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.