All Products
Search
Document Center

ApsaraDB for MongoDB:Hubungkan ke MongoDB melalui Internet publik

Last Updated:Sep 10, 2026

Topik ini menjelaskan cara menghubungkan ke instans ApsaraDB for MongoDB melalui Internet publik.

Prasyarat

Langkah 1: Ajukan string koneksi publik

  1. Buka halaman Replica Set Instances atau Sharded Cluster Instances. Pada bilah navigasi atas, pilih kelompok sumber daya dan Wilayah yang diinginkan, lalu klik ID instans target.

  2. Pada panel navigasi kiri halaman detail instans, klik Database Connections.

  3. Pada bagian Public IP Connection, klik Apply for Public IP.

  4. Pada kotak dialog Apply for Public IP, klik Confirm.

  5. Tunggu hingga status instans berubah dari Establishing Network Connection menjadi Running. Setelah itu, Anda dapat melihat string koneksi publik instans tersebut.

    Catatan
    • Instans tetap berjalan normal selama statusnya Establishing Network Connection.

    • String koneksi hanya terlihat setelah Anda mengonfigurasi allowlist.

    • Gunakan ConnectionStringURI untuk koneksi berdaya tahan tinggi (high-availability).

Langkah 2: Hubungkan ke instans

Contoh ini menggunakan MongoDB Shell (mongosh) untuk menghubungkan ke instans.

ConnectionStringURI (Direkomendasikan)

Perintah:

mongo "<ConnectionStringURI>"

Parameter:

Parameter

Deskripsi

<ConnectionStringURI>

ConnectionStringURI untuk instans Anda, tersedia di Konsol ApsaraDB for MongoDB.

Catatan

Sebagai praktik keamanan terbaik, jangan menghubungkan ke database menggunakan akun root. Buat akun database di Data Management (DMS) sebelum melakukan koneksi.

Saat menghubungkan, ganti root:**** dengan username dan password akun baru, misalnya test:PassWord**. Ganti juga /admin dengan database otentikasi, misalnya /testdb.

Contoh:

mongo "mongodb://test:PassWord**@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717/testdb?replicaSet=mgset-6108****"    

String koneksi single-node

Perintah:

mongo --host <host> --port <port> -u <username> -p --authenticationDatabase <authenticationDatabase>

Parameter:

Parameter

Deskripsi

<host> dan <port>

Connection Address dan Port node, tersedia di Konsol ApsaraDB for MongoDB.

Contoh: dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717

<username>

Nama akun database.

Catatan

Sebagai praktik keamanan terbaik, jangan gunakan akun root untuk menghubungkan ke database. Buat akun database di Data Management (DMS) sebelum melakukan koneksi.

<authenticationDatabase>

Database yang digunakan untuk mengotentikasi akun database yang ditentukan.

Penting

Agar otentikasi berhasil, akun database harus diautentikasi terhadap database tempat akun tersebut dibuat.

Contoh:

Contoh berikut mengasumsikan akun database adalah test dan database otentikasinya adalah testdb.

mongo --host dds-bp19f409d7512****.mongodb.rds.aliyuncs.com --port 3717 -u test -p --authenticationDatabase testdb

Pada prompt Enter password:, masukkan password akun database lalu tekan Enter.

FAQ

Mengapa saya tidak bisa menghubungkan ke instans meskipun sudah menambahkan alamat IP publik saya ke allowlist?

Masalah ini dapat terjadi jika Anda menambahkan alamat IP publik yang salah ke allowlist. Ikuti langkah-langkah berikut untuk menemukan alamat IP publik yang benar dari klien lokal Anda:

  1. Tambahkan alamat IP 0.0.0.0/0 ke allowlist instans MongoDB.

    Peringatan

    0.0.0.0/0 memungkinkan perangkat apa pun mengakses instans MongoDB. Hal ini menimbulkan risiko keamanan dan harus digunakan dengan hati-hati. Jika Anda menggunakan entri ini, segera hapus dari allowlist setelah selesai.

  2. Gunakan MongoDB Shell (mongosh) untuk menghubungkan ke instans.

    Jika Anda masih tidak dapat menghubungkan ke MongoDB setelah mengatur allowlist menjadi 0.0.0.0/0, Anda dapat menghubungkan ke MongoDB menggunakan Data Management (DMS) untuk memeriksa apakah username, password, dan database otentikasi sudah benar.

  3. Jalankan perintah berikut untuk mengkueri informasi klien dari sesi MongoDB Shell (mongosh) Anda.

    db.currentOp({"appName" : "MongoDB Shell","active" : true})

    Setelah perintah dijalankan, bidang client pada hasil menunjukkan alamat IP publik klien. Contoh output:

    mgset-xxx:PRIMARY> db.currentOp({"appName" : "MongoDB Shell","active" : true})
    {
        "inprog" : [
            {
                "desc" : "conn1591052",
                "threadId" : "48008022501120",
                "connectionId" : 1591052,
                "client" : "47.xxx.xxx.xxx:40602",
                "appName" : "MongoDB Shell",
                "clientMetadata" : {
                    "application" : {
                        "name" : "MongoDB Shell"
                    },
                    "driver" : {
                        "name" : "MongoDB Internal Client",
                        "version" : "4.0.5"
                    },
                    "os" : {
                        "type" : "Linux",
                        "name" : "Ubuntu",
                        "architecture" : "x86_64",
                        "version" : "16.04"
                    }
                },
            },
            "active" : true,
    
    Catatan

    Jika Anda menghubungkan ke instans menggunakan klien lain, jalankan perintah berikut untuk mengkueri informasi semua klien aktif.

    db.runCommand({currentOp: 1, "active" : true})
  4. Tambahkan alamat IP yang diperoleh ke allowlist instans MongoDB, lalu hapus alamat IP 0.0.0.0/0.

Mesin lokal saya memiliki alamat IP publik dinamis yang berubah-ubah, sehingga menyebabkan kegagalan koneksi. Apa solusinya?

Apa yang harus saya lakukan jika akses lambat, koneksi membeku, atau muncul error ECONNRESET saat menghubungkan ke MongoDB melalui jaringan publik?

Lakukan troubleshooting koneksi jaringan publik dari klien lokal Anda berdasarkan gejala berikut:

  • Akses lambat dan Anda mencurigai adanya fluktuasi jaringan: Me-restart instans tidak akan menyelesaikan masalah yang berasal dari sisi jaringan. Amati kondisi jaringan terlebih dahulu. Jika masalah berlanjut, lakukan troubleshooting pada jaringan lokal Anda atau koneksi yang disediakan oleh penyedia layanan Internet (ISP) Anda.

  • Koneksi TCP berhasil dibuat, tetapi muncul error ECONNRESET selama handshake: Periksa apakah allowlist instans telah dikonfigurasi dengan benar. Untuk instans kluster sharded, periksa apakah jumlah koneksi ke node Mongos telah mencapai batas maksimum. Jika batas tercapai, restart instans untuk melepaskan koneksi atau lakukan peningkatan spesifikasi instans. Sementara itu, gunakan string koneksi single-node untuk mengesampingkan kemungkinan masalah load balancing. Gunakan string koneksi single-node hanya untuk troubleshooting, bukan sebagai metode koneksi reguler.

  • Klien seperti Apache SeaTunnel melaporkan error No server chosen atau timeout koneksi: Driver mungkin gagal mengidentifikasi node primary. Gunakan ConnectionStringURI lengkap untuk koneksi berdaya tahan tinggi, yang mencakup parameter replicaSet. Atau, sementara waktu tentukan hanya string koneksi node primary untuk pengujian. Setelah masalah teridentifikasi, kembali gunakan ConnectionStringURI lengkap.

  • Tugas sinkronisasi data membeku: Periksa log klien untuk error kehabisan memori (OOM) atau kehilangan koneksi. Lalu, analisis log koneksi MongoDB untuk menentukan apakah klien mengalami timeout karena tidak dapat mengidentifikasi node primary. Ubah konfigurasi koneksi agar menggunakan ConnectionStringURI lengkap dengan parameter replicaSet untuk koneksi berdaya tahan tinggi, atau sementara waktu hubungkan hanya ke node primary untuk pengujian.

Dokumen terkait