Sebagai catatan tambahan, saat menghubungkan menggunakan mongoshell dan menggunakan format daftar seed DNS, pencarian Catatan TXT DNS juga harus dilakukan di mana catatan harus berisi opsi koneksi, untuk ditambahkan sebagai parameter ke string penghubung yang dibangun secara dinamis
Karena ini tidak dikembalikan saat Anda menggunakan format daftar benih DNS, ini dapat menunjukkan kemungkinan masalah konfigurasi DNS
Salah satu cara pengujian adalah dengan melakukan nslookup seperti yang ditunjukkan pada contoh di bawah menggunakan cluster yang Anda berikan di postingan ini
nslookup -q=TXT clusterone.qnrfp.mongodb.netOutputnya harus berisi opsi koneksi (harap perhatikan nilai text yang dikembalikan)
Ini berarti sudah ada layanan yang mendengarkan pada kombinasi server/port. Kemungkinan besar ini adalah contoh lain dari proses mongod
Saya lupa me-restart dan saya baru saja me-restart sekarang
Ketika Anda me-restart, apakah Anda me-reboot mesin atau hanya me-restart proses mognod?
membuat bindip hanya menjadi 0. 0. 0. 0 berfungsi dengan baik dan saya dapat mengakses db melalui host jarak jauh namun khawatir jika ada masalah keamanan
Menyetel bindIp ke 0.0.0.0 berarti mongod akan mendengarkan di semua antarmuka jaringan. Jika host Anda memiliki antarmuka jaringan yang memungkinkan lalu lintas masuk dan Anda tidak memiliki firewall yang memblokir lalu lintas publik ke port 27017, maka Anda berhak khawatir tentang masalah keamanan. Jika server Anda memiliki dua kartu jaringan di dalamnya, satu untuk eksternal dan satu untuk lalu lintas internal, maka 0.0.0.0 akan mengikat keduanya yang tidak baik. Lalu lintas jaringan eksternal tidak perlu terhubung langsung ke server MongoDB Anda
Saya akan mengatur bindIp saya menjadi 127.0.0.1,10.x.x.x. Alamat 127.0.0.1_ adalah alamat localhost Anda sehingga dapat terhubung secara lokal dari mesin tanpa melewati jaringan. Jika Anda tidak ingin orang terhubung dari host MongoDB, Anda dapat mengabaikan alamat IP ini. 10.x.x.x_ idealnya hanya antarmuka internal yang tidak mengizinkan lalu lintas jaringan luar Anda. Saya hanya merekomendasikan menggunakan 0.0.0.0 untuk tujuan pengujian dan kemudian merekomendasikan untuk mengubah kembali ke IP yang lebih ketat
Dokumen konfigurasi memiliki bagian kecil. Tapi pasti layak untuk memastikan server database Anda diamankan dengan benar
Instans tanpa server saat ini tidak mendukung koneksi melalui driver atau versi driver tertentu. Untuk mempelajari lebih lanjut, lihat Batasan Instans Tanpa Server
Penerapan basis data Hubungkan dinonaktifkan
Tombol Connect penerapan database Anda mungkin dinonaktifkan jika penerapan database Anda dalam status penyediaan. Penyebaran database Anda perlu disediakan saat pertama kali diterapkan. Klaster juga harus tersedia saat Anda menaikkan atau menurunkan skalanya. Proses penyediaan dapat memakan waktu hingga 10 menit, setelah itu tombol Hubungkan akan diaktifkan.
Menghubungkan alamat IP tidak ada dalam Daftar Akses IP
Sebelum menghubungkan ke penerapan database Atlas Anda, periksa apakah Anda telah menambahkan alamat IP host Anda ke untuk proyek penerapan database Anda. Atlas memungkinkan koneksi klien hanya dari alamat IP dan
CIDR rentang alamat dalam daftar akses IP.Otentikasi ke penerapan database gagal
Untuk terhubung ke Atlas, Anda harus mengautentikasi dengan pengguna database MongoDB. Untuk membuat pengguna database untuk penerapan database Anda, lihat Mengonfigurasi Pengguna Database
Solusi yang memungkinkan
Jika Anda telah membuat pengguna dan mengalami masalah otentikasi, coba yang berikut ini
Pastikan Anda menggunakan nama pengguna dan kata sandi yang benar untuk pengguna database Anda, dan apakah Anda tersambung ke penyebaran database yang benar
Periksa apakah Anda menentukan yang benar
authSource database di string koneksi AndaJika Anda memiliki karakter khusus dalam kata sandi Anda, lihat
Terlalu banyak koneksi terbuka ke penyebaran basis data Anda
Atlas menetapkan batasan untuk koneksi masuk bersamaan ke penerapan database. Untuk cluster, ini didasarkan pada cluster tier. Jika Anda mencoba menyambung saat Anda berada pada batas ini, MongoDB menampilkan kesalahan yang menyatakan connection refused because too many open connections
Untuk perbandingan mendetail tentang tingkatan klaster dan koneksi konkuren maksimumnya, lihat
Solusi yang memungkinkan
Tutup semua koneksi terbuka ke penerapan database Anda yang saat ini tidak digunakan
Skalakan klaster Anda ke tingkat yang lebih tinggi untuk mendukung lebih banyak koneksi bersamaan
Mulai ulang aplikasi Anda
Untuk mencegah masalah ini di masa mendatang, pertimbangkan untuk menggunakan opsi string koneksi untuk membatasi jumlah koneksi di kumpulan koneksi
Untuk mempelajari cara memperbaiki masalah ini, lihat Perbaiki Masalah Koneksi
Mencoba terhubung dari balik firewall
Menghubungkan ke Atlas UI
Atlas menggunakan CDN untuk menyajikan konten dengan cepat. Jika organisasi Anda menggunakan firewall, tambahkan host Atlas CDN berikut ke daftar yang diizinkan firewall untuk mencegah masalah saat mengakses UI Atlas. //assets.mongodb-cdn.com/.
Menghubungkan ke Penerapan Database
Penyebaran database Atlas beroperasi di port 27017. Anda harus dapat menjangkau port ini untuk terhubung ke penerapan database Anda. Selain itu, pastikan port yang sesuai terbuka untuk yang berikut ini
Untuk klaster yang di-shard, berikan akses ke port 27016
Untuk Konektor BI, berikan akses ke port 27015
Anda dapat memeriksa kemampuan Anda untuk menjangkau port menggunakan pihak ketiga Penguji port keluar .
Contoh
Untuk memeriksa kemampuan Anda menjangkau port 27017, kunjungi http. //portquiz. bersih. 27017.
Jika Anda tidak dapat mengakses port ini, periksa pengaturan firewall sistem Anda dan pastikan bahwa mereka tidak memblokir akses ke port ini
Ketersediaan Penerapan Basis Data
Jika Anda menggunakan p%40ssw0rd%279%27%210 string koneksi dan driver atau shell Anda tidak dapat menemukan host DNS dari penerapan database Atlas, . Periksa apakah penyebaran database ada. Jika ini adalah kluster yang dijeda, Anda dapat membuat kluster jika perlu.
Catatan
Atlas secara otomatis menjeda kluster p%40ssw0rd%279%27%21_1 setelah 60 hari tanpa koneksi
Pemecahan Masalah Kompas MongoDB
Jika Anda menggunakan Kompas MongoDB untuk terhubung ke klaster Anda dan mengalami masalah, lihat
di bagian ini
Kesalahan Koneksi Kompas dalam dokumentasi Kompas MongoDB.
Jika Anda menggunakan a atau X yang dibuat secara otomatis. 509 sertifikat dikelola oleh Atlas untuk mengautentikasi ke database MongoDB, saat Anda terhubung ke Kompas MongoDB, Anda harus.
Dalam Kompas MongoDB, pilih Isi bidang koneksi satu per satu .
Dalam tarik-turun Autentikasi , pilih p%40ssw0rd%279%27%212.
Pilih Opsi Lainnya .
Pada tarik-turun SSL , pilih Validasi Server dan Klien.
Tambahkan jalur yang sama ke sertifikat yang dikelola Atlas yang diunduh, atau sertifikat yang dikelola sendiri (bergantung pada yang Anda gunakan) ke masing-masing bidang ini. Otoritas Sertifikat , Sertifikat Klien , dan Client Private Key.
Untuk mempelajari lebih lanjut, lihat Hubungkan ke MongoDB di dokumentasi Kompas MongoDB.
Masalah Rangkaian Koneksi
Format String Sambungan Salah
format string koneksi yang Anda gunakan untuk terhubung ke Atlas bergantung pada beberapa faktor, termasuk.
Versi Anda. Untuk mempelajari lebih lanjut, lihat Terhubung melalui p%40ssw0rd%279%27%213
Versi driver Anda. Untuk mempelajari lebih lanjut, lihat Terhubung melalui Aplikasi Anda
Verifikasi string koneksi Anda di lingkungan pengujian sebelum memasukkannya ke dalam produksi
Karakter Khusus dalam Kata Sandi Rangkaian Sambungan
Jika kata sandi Anda menyertakan karakter khusus, dan Anda menggunakan kata sandi dalam URI string koneksi, enkodekan karakter khusus tersebut
Catatan
Karakter berikut harus dikonversi menggunakan jika disertakan dalam nama pengguna atau kata sandi
: / ? # [ ] @
Misalnya, jika kata sandi Anda dalam teks biasa adalah p%40ssw0rd%279%27%215, Anda perlu menyandikan kata sandi Anda sebagai
p%40ssw0rd%279%27%21_
➤ Gunakan menu tarik-turun Pilih bahasa Anda untuk mengatur bahasa contoh penyandian di bagian ini
Penting
Jangan menyandikan karakter khusus dalam kata sandi Anda jika Anda menggunakan kata sandi di luar URI string koneksi (misalnya, menempelkannya ke )
String Koneksi Tidak Kompatibel dengan Versi Driver
Jika Anda melihat pesan kesalahan ini, kemungkinan besar driver Anda sudah usang. Untuk instruksi tentang memperbarui driver Anda, lihat Dokumentasi Driver khusus Anda.
DNS Penyedia Layanan Internet Memblokir String Koneksi
Saat Anda menggunakan untuk menyambungkan ke Atlas, Anda mungkin melihat kesalahan berikut
DNSHostNotFound: Failed to look up service “<MongoDB service name>”_
Kesalahan ini dapat terjadi saat menggunakan server DNS default yang ISP provides. That DNS itu mungkin tidak mendukung SRV pencarian yang DNS seed list connection string format uses.
Untuk mengatasi masalah ini, Anda dapat mencoba mengubah konfigurasi DNS Anda untuk menggunakan server DNS publik.
Contoh
Anda dapat mengonfigurasi setelan jaringan untuk menggunakan DNS Publik Google sebagai ganti ISP's DNS servers.
Setelah Anda memperbarui setelan jaringan untuk menggunakan server DNS publik,
Kesalahan String Koneksi dengan Alat DB di Ubuntu 18. 04
Jika menjalankan Ubuntu 18. 04 dan menggunakan format (p%40ssw0rd%279%27%21_0) untuk terhubung ke Atlas dari salah satu MongoDB Database Tools (p%40ssw0rd%279%27%218, p%40ssw0rd%279%27%219, dll), Anda mungkin melihat yang berikut .
lookup nta8e.mongodb.net on 123.45.67.8:27017: cannot unmarshal DNS message
Jika ya, gunakan salah satu opsi koneksi berikut
gunakan opsi DNSHostNotFound: Failed to look up service “<MongoDB service name>”_0 dengan (DNSHostNotFound: Failed to look up service “<MongoDB service name>”1)
gunakan opsi DNSHostNotFound: Failed to look up service “<MongoDB service name>”_2 untuk menentukan host yang akan dihubungkan
Koneksi Ditolak menggunakan SRV Connection String
Saat menggunakan format (p%40ssw0rd%279%27%21_0) dengan driver atau Kompas, Anda mungkin menerima kesalahan berikut
Error: querySrv ECONNREFUSED _mongodb._tcp.<SRV Record>
Untuk mengatasi masalah ini, gunakan dengan Kompas atau driver itu. Dengan Compass, jangan atur nilai SRV Record, atur nilai Hostname dan Port sebagai gantinya