Itu mudah bagi saya untuk terhubung ke server mysql jauh saya di AWS menggunakan sequelpro , namun saya berjuang dengan melakukan hal yang sama dengan mongodb.
Saya mencoba mengatur terowongan ssh melalui baris perintah seperti ini:
ssh -fN -l root -i path/to/id_rsa -L 9999:host.com:27017 host.com
Saya juga mencobanya dengan mengganti host dengan alamat ip
idenya adalah untuk meneruskan semua koneksi mongodb pada port 9999 ke yang di host pada port 27101 .. namun ketika saya menjalankan perintah:
mongo --host localhost --port 9999
koneksi gagal, saya mendapatkan ini sebagai gantinya:
MongoDB shell version: 2.6.0
connecting to: localhost:9999/test
channel 2: open failed: connect failed: Connection timed out
channel 3: open failed: connect failed: Connection timed out
2014-05-22T14:42:01.372+0300 DBClientCursor::init call() failed
2014-05-22T14:42:01.374+0300 Error: DBClientBase::findN: transport error: localhost:9999 ns: admin.$cmd query: { whatsmyuri: 1 } at src/mongo/shell/mongo.js:148
exception: connect failed
jika saya menjalankan sudo netstat -plnt
saya mendapatkan yang berikut (yang tampaknya dalam urutan):
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 4242/node
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1342/httpd2-prefork
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2552/sshd
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2505/master
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 11719/mongod
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 16561/redis-server
tahu apa yang saya lakukan salah?
pembaruan: beginilah bentuk perintah fungsional akhir (kredit diberikan ke kenster ):
ssh -fN -i ~/path/to/id_rsa -L 6666:localhost:27017 [email protected]
di mana -fN
perintah membuat perintah ini berjalan di latar belakang
-L
tampaknya bertentangan dengan halaman manual ssh:-L [bind_address:]port:host:hostport Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.
itu secara eksplisit mengatakan ituhost
adalah host server jauh .. Anda menggunakannya untuk lokal?Saya telah melakukan beberapa konfigurasi pada kotak Ubuntu 18 Vagrant saya agar berhasil menghubungkan MongoDB dari jarak jauh menggunakan Robo 3T GUI. Saya sudah menjelaskan dalam langkah-langkah berikut.
Di dalam mongo shell, ketik perintah berikut untuk membuat pengguna admin baru.
Secara default mongodb dikonfigurasi untuk memungkinkan koneksi hanya dari localhost (IP 127.0.0.1). Kami perlu mengizinkan koneksi jarak jauh dari alamat ip apa pun. Perubahan berikut hanya boleh dilakukan di server pengembangan Anda. Buka file etc / mongod.conf dan lakukan perubahan berikut.
Juga di opsi mongod.conf file uncomment keamanan yang sama dan tambahkan opsi otorisasi seperti yang ditunjukkan di bawah ini.
Simpan dan keluar dari file mongod.conf dan restart server mongodb.
Unduh dan instal alat Robo 3T GUI.
Pada Robo 3T GUI, dalam pengaturan koneksi, Anda perlu melakukan beberapa perubahan seperti yang ditunjukkan pada tangkapan layar di bawah ini.
Masukkan nama pengguna dan kata sandi database admin mongodb yang telah Anda buat sebelumnya.
Di sini, saya telah memasukkan kredensial kotakshsh Ubuntu 18 saya ssh.
Simpan perubahan dan tekan ikon hubungkan untuk melihat apakah koneksi berfungsi dengan baik.
sumber