bagaimana saya bisa terhubung ke server mongo jauh dari terminal Mac OS

101

Saya ingin masuk ke shell mongo di terminal di MacBook saya. Namun, saya tertarik untuk menghubungkan ke instance Mongo yang berjalan di cloud (instance compose.io melalui addon Heroku). Saya memiliki nama, kata sandi, host, port, dan nama database dari URI MongoDB:

mongodb://username:[email protected]:10011/my_database

Saya telah menginstal mongodb di MacBook saya menggunakan Homebrew bukan karena saya ingin Mongo berjalan di Mac saya, tetapi hanya untuk mendapatkan akses ke program mongo shell agar dapat terhubung ke database jarak jauh ini.

Namun, saya tidak dapat menemukan perintah yang tepat untuk memberi saya akses shell penuh yang saya inginkan. Menggunakan instruksi yang ditemukan di sini http://docs.mongodb.org/manual/reference/program/mongo/ (cari "remote") Saya bisa mendapatkan apa yang tampak seperti koneksi, tetapi tanpa memberikan nama pengguna atau kata sandi, saya tidak terhubung sepenuhnya. Menjalankan db.auth(username, password)mengembalikan 1 (berlawanan dengan "auth gagal" saat saya memberikan nama pengguna dan sandi yang salah), tetapi saya terus mendapatkan pesan kesalahan "tidak sah" saat mengeluarkan show dbsperintah.

jononomo.dll
sumber

Jawaban:

170

Anda mungkin menghubungkan dengan baik tetapi tidak memiliki cukup hak untuk menjalankan show dbs.

Anda tidak perlu menjalankan db.auth jika Anda meneruskan auth di baris perintah:

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

Setelah Anda terhubung, apakah Anda dapat melihat koleksi?

> show collections

Jika demikian, semuanya baik-baik saja dan Anda tidak memiliki hak istimewa admin ke database dan tidak dapat menjalankan file show dbs

Ben
sumber
Saya bisa terhubung menggunakan teknik yang Anda gambarkan. Namun, saya tidak dapat menjalankan perintah apa pun, seperti "tampilkan koleksi" atau "tampilkan pengguna". Saya ingin mendapatkan kesalahan "tidak diizinkan untuk kueri di my_db.system.namespaces".
jononomo
1
Ok, jadi heroku secara acak menamai database mongo saya dengan nama yang berbeda dari yang saya gunakan di dev. Saya pikir itu pada dasarnya masalah saya.
jononomo
1
Tetapi jika saya memiliki? AuthSource = admin pada akhirnya. Itu tidak berhasil. --authenticationDatabase tidak membantu.
Roman Kazanovskyi
27017 adalah port default. untuk berjaga-jaga jika port contoh tidak berfungsi. docs.mongodb.com/manual/reference/default-mongodb-port
ubah
0

Cara lain untuk melakukannya adalah:

mongo mongodb://mongoDbIPorDomain:port
KayV
sumber