All Products
Search
Document Center

ApsaraDB RDS:Troubleshoot masalah koneksi instans

Last Updated:Jun 18, 2026

Topik ini menjelaskan cara mengatasi masalah koneksi dengan instans ApsaraDB RDS for MySQL.

Saat membangun dan men-debug beban kerja Anda, Anda mungkin tidak dapat terhubung ke instans ApsaraDB RDS for MySQL. Penyebab umumnya meliputi ketidaksesuaian jenis jaringan dan pengaturan daftar putih alamat IP yang salah. Topik ini mencakup penyebab tersebut beserta solusinya.

Jenis jaringan tidak sesuai

  • Instans ECS berada di VPC, sedangkan instans ApsaraDB RDS for MySQL berada di jaringan klasik.

    • Solusi 1 (Direkomendasikan): Ubah jenis jaringan instans ApsaraDB RDS for MySQL dari jaringan klasik ke VPC. Untuk informasi selengkapnya, lihat Ubah jenis jaringan instans ApsaraDB RDS.

      Catatan

      Setelah perubahan, kedua instans harus berada di VPC yang sama agar dapat berkomunikasi melalui jaringan internal.

    • Solusi 2: Beli instans ECS baru di jaringan klasik. Instans ECS tidak dapat dimigrasikan dari VPC ke jaringan klasik. Kami merekomendasikan penggunaan VPC karena menyediakan keamanan lebih tinggi dibandingkan jaringan klasik.

    • Solusi 3: Terhubung ke instans RDS dari instans ECS menggunakan titik akhir publiknya. Metode ini menawarkan kinerja, keamanan, dan stabilitas yang buruk.

  • Instans ECS berada di jaringan klasik, sedangkan instans ApsaraDB RDS for MySQL berada di VPC.

    • Solusi 1 (Direkomendasikan): Migrasikan instans ECS dari jaringan klasik ke VPC.

      Catatan

      Setelah migrasi, kedua instans harus berada di VPC yang sama agar dapat berkomunikasi melalui jaringan internal.

    • Solusi 2: Ubah jenis jaringan instans RDS dari VPC ke jaringan klasik. Kami merekomendasikan penggunaan VPC karena menyediakan keamanan lebih tinggi dibandingkan jaringan klasik.

    • Solusi 3: Gunakan ClassicLink untuk menghubungkan instans ECS di jaringan klasik ke sumber daya VPC melalui jaringan internal.

    • Solusi 4: Terhubung ke instans RDS dari instans ECS menggunakan titik akhir publiknya. Metode ini menawarkan kinerja, keamanan, dan stabilitas yang buruk.

VPC berbeda

VPC adalah lingkungan jaringan yang terisolasi secara logis yang dibangun di Alibaba Cloud. Agar dapat berkomunikasi melalui jaringan internal, instans ECS dan ApsaraDB RDS for MySQL harus berada di VPC yang sama.

Wilayah berbeda

  • Koneksi publik: Gunakan titik akhir publik instans RDS untuk terhubung lintas wilayah atau akun melalui internet. Anda tidak dikenai biaya untuk trafik internet inbound dan outbound instans RDS.

  • Koneksi privat: Secara default, jika instans ECS dan instans RDS berada di wilayah berbeda atau dimiliki oleh akun berbeda, keduanya tidak dapat terhubung melalui jaringan internal karena VPC-nya terisolasi. Namun, Anda dapat menggunakan Koneksi peering VPC atau Cloud Enterprise Network (CEN) untuk menghubungkan kedua VPC tersebut, sehingga instans ECS dapat mengakses instans RDS lintas wilayah atau akun.

    • Koneksi peering VPC: Fitur ini mendukung koneksi VPC lintas wilayah dan lintas akun. Fitur ini hemat biaya tetapi relatif kompleks untuk dikonfigurasi, sehingga cocok untuk skenario sederhana dengan jumlah VPC yang sedikit.

    • Cloud Enterprise Network (CEN): Produk ini mendukung koneksi VPC lintas wilayah dan lintas akun. Produk ini mudah dikonfigurasi tetapi lebih mahal, sehingga cocok untuk skenario kompleks dengan banyak VPC.

Pengaturan daftar putih alamat IP salah

Kegagalan atau error resolusi nama domain

Kegagalan server DNS atau perubahan konfigurasi kartu antarmuka jaringan (NIC) dapat menyebabkan resolusi nama domain gagal atau mengembalikan alamat IP yang salah. Gunakan perintah ping dan telnet untuk menguji konektivitas ke instans RDS Anda.

ping <domain_name>
telnet <domain_name> <port_number>
            

Contoh

# Contoh ping berhasil
[root@xxx ~]# ping rm-xxx.mysql.rds.aliyuncs.com
PING rm-xxx.mysql.rds.aliyuncs.com (192.168.0.176) 56(84) bytes of data.
64 bytes from 192.168.0.176 (192.168.0.176): icmp_seq=1 ttl=64 time=0.151 ms
64 bytes from 192.168.0.176 (192.168.0.176): icmp_seq=2 ttl=64 time=0.141 ms
64 bytes from 192.168.0.176 (192.168.0.176): icmp_seq=3 ttl=64 time=0.107 ms
64 bytes from 192.168.0.176 (192.168.0.176): icmp_seq=4 ttl=64 time=0.108 ms
# Contoh ping gagal
[root@izbpxxx ~]# ping rm-bp1xxx.mysql.rds.aliyuncs.com
ping: rm-bp1xxx.mysql.rds.aliyuncs.com: Name or service not known
[root@izbpxxx ~]#
# Contoh koneksi telnet berhasil
[root@xxx ~]# telnet rm-xxx.mysql.rds.aliyuncs.com 3306
Trying 192.168.0.176...
Connected to rm-xxx.mysql.rds.aliyuncs.com.
Escape character is '^]'.
N
5.6.16-logtEkkVNd-0!)\}\4/,/GXfu<mysql_native_password
# Contoh koneksi telnet gagal (kegagalan resolusi nama domain)
[root@izbpxxx ~]# telnet rm-bp1xxx.mysql.rds.aliyuncs.com 3306
telnet: rm-bp1xxx.mysql.rds.aliyuncs.com: Name or service not known
rm-bp1xxx.mysql.rds.aliyuncs.com: Host name lookup failure
[root@izbpxxx ~]#

Jika pengujian gagal, modifikasi file konfigurasi NIC untuk mengatasi masalah tersebut:

  1. Modifikasi file konfigurasi NIC.

    vi /etc/sysconfig/network-scripts/<nic_configuration_file_name>
    Catatan

    <nic_configuration_file_name> adalah NIC yang digunakan oleh server ECS. Jalankan perintah ifconfig untuk melihat sufiks nama file tersebut. Nilai default-nya adalah ifcfg-eth0.

  2. Tambahkan baris berikut di akhir file:

    DNS1=100.100.XX.XX
    DNS2=100.100.XX.XX
    Catatan

    Jika DNS1 dan DNS2 sudah dikonfigurasi, perbarui alamat IP-nya seperti yang ditunjukkan di atas.

    DEVICE=eth0
    BOOTPROTO=dhcp
    ONBOOT=yes
    DNS1=100.100.2.136
    DNS2=100.100.2.138
  3. Jalankan perintah berikut untuk merestart layanan jaringan:

    sudo systemctl restart network
  4. Jalankan perintah berikut untuk memeriksa apakah modifikasi berhasil:

     cat /etc/resolv.conf
    [root@xxx ~]# cat /etc/resolv.conf
    options timeout:2 attempts:3 rotate single-request-reopen
    : generated_by /usr/sbin/dhclient-script
    nameserver 100.100.2.136
    nameserver 100.100.2.138
    [root@xxx ~]#

Uji konektivitas port

Jika resolusi nama domain berfungsi dengan benar, gunakan perintah telnet untuk menguji konektivitas port ke instans RDS.

telnet <RDS_endpoint> <port_number>

Sebagai contoh, uji port default 3306 instans ApsaraDB RDS for MySQL:

telnet rm-xxxx.mysql.rds.aliyuncs.com 3306
  • Output yang berisi Connected to dan Escape character is menunjukkan bahwa port tersebut dapat diakses pada lapisan jaringan.

  • Error Connection timed out menunjukkan jaringan tidak dapat dijangkau atau diblokir oleh firewall. Periksa konfigurasi berikut:

    • Verifikasi bahwa daftar putih alamat IP RDS mencakup alamat IP klien.

    • Verifikasi bahwa aturan security group mengizinkan trafik pada port yang sesuai.

    • Verifikasi bahwa klien dan instans RDS berada di VPC yang sama. Titik akhir internal hanya dapat diakses dari dalam VPC-nya.

  • Error Connection refused menunjukkan bahwa port tersebut tidak sedang didengarkan. Periksa status berjalan dan konfigurasi port instans RDS.

Jika perintah ping dan telnet berhasil dijalankan tetapi aplikasi Anda tetap melaporkan timeout koneksi, masalahnya berada di lapisan aplikasi, bukan lapisan jaringan. Gunakan tcpdump untuk mengambil paket dan menganalisis jabat tangan tiga arah TCP serta jabat tangan empat arah untuk mengidentifikasi akar penyebab timeout.

tcpdump -i eth0 host <RDS_endpoint> -w rds_capture.pcap

Analisis file pengambilan paket: Tidak ada respons terhadap paket SYN menunjukkan jaringan tidak dapat dijangkau atau diblokir. Tidak ada pertukaran data setelah jabat tangan tiga arah berhasil menunjukkan anomali tingkat aplikasi.

Instans macet dalam status Creating Network Connection

Di konsol, buka halaman Tasks. Temukan tugas tersebut dan klik Retry atau Modify switching time. Untuk informasi selengkapnya, lihat Gunakan Task Center.

Timeout baca karena tidak ada respons terhadap paket FIN

Saat Anda terhubung ke instans ApsaraDB RDS for MySQL melalui jaringan perantara seperti VPN atau jalur sewa, koneksi mungkin berfungsi awalnya tetapi kemudian mengalami timeout. Hal ini dapat terjadi jika server gagal merespons setelah klien mengirim paket FIN.

Ikuti langkah-langkah berikut untuk melakukan troubleshooting masalah ini:

  1. Di konsol ApsaraDB RDS, buka halaman detail instans. Di panel navigasi sebelah kiri, klik Parameters dan periksa nilai parameter wait_timeout dan interactive_timeout. Di ApsaraDB RDS for MySQL, nilai default wait_timeout adalah 86.400 detik. Jika parameter ini diatur ke nilai rendah, server akan menutup koneksi idle secara prematur.

  2. Periksa kehilangan paket atau latensi tinggi pada tautan jaringan perantara, seperti VPN atau jalur sewa. Gunakan perintah telnet <RDS_endpoint> <port_number> untuk menguji konektivitas port ke instans RDS dan konfirmasi aksesibilitas pada lapisan jaringan.

  3. Gunakan tcpdump atau Wireshark untuk mengambil paket secara simultan di klien dan server. Analisis urutan paket TCP FIN/RST untuk menentukan apakah pemutusan koneksi terjadi di lapisan transport jaringan atau lapisan aplikasi database.

Troubleshooting timeout dengan log

Investigasi masalah timeout koneksi dengan memeriksa log error dan log slow query instans RDS Anda.

  1. Login ke Konsol ApsaraDB RDS. Di halaman Instances, temukan instans target dan buka halaman manajemennya. Di panel navigasi sebelah kiri, pilih Logs > Error Logs.

  2. Periksa log error untuk catatan seperti Host is blocked, connect timeout, atau Aborted connection untuk mengidentifikasi alasan kegagalan koneksi.

  3. Pilih Slow Query Logs dan periksa kueri lambat berdurasi panjang yang mungkin memblokir koneksi baru.

  4. Periksa pengaturan parameter wait_timeout dan interactive_timeout instans untuk menentukan apakah timeout secara otomatis memutus koneksi idle.