Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pemecahan Masalah untuk Proxy RDS
Setelah itu, Anda dapat menemukan ide pemecahan masalah untuk beberapa masalah RDS Proxy umum dan informasi tentang CloudWatch log untuk RDS Proxy.
Dalam log RDS Proxy, setiap entri diawali dengan nama titik akhir proxy terkait. Nama ini bisa berupa nama yang Anda tentukan untuk titik akhir yang ditentukan pengguna. Atau, bisa menjadi nama khusus default
untuk titik akhir default proxy yang melakukan permintaan baca/tulis. Untuk informasi selengkapnya tentang titik akhir proksi, lihat Bekerja dengan titik akhir Amazon RDS Proxy.
Memverifikasi konektivitas untuk proksi
Anda dapat menggunakan perintah berikut untuk memverifikasi bahwa semua komponen seperti proksi, basis data, dan instans komputasi dalam koneksi dapat berkomunikasi satu sama lain.
Periksa proxy itu sendiri menggunakan describe-db-proxiesperintah. Periksa juga kelompok target terkait menggunakan perintah describe-db-proxy-target-groups. Periksa apakah detail target cocok dengan instance RDS DB yang ingin Anda kaitkan dengan proxy. Gunakan perintah seperti berikut.
aws rds describe-db-proxies --db-proxy-name $DB_PROXY_NAME aws rds describe-db-proxy-target-groups --db-proxy-name $DB_PROXY_NAME
Untuk mengonfirmasi bahwa proxy dapat terhubung ke database yang mendasarinya, periksa target yang ditentukan dalam grup target menggunakan describe-db-proxy-targetsperintah. Gunakan perintah seperti berikut.
aws rds describe-db-proxy-targets --db-proxy-name $DB_PROXY_NAME
Output dari describe-db-proxy-targetsperintah termasuk TargetHealth
bidang. Anda dapat memeriksa kolom State
, Reason
, dan Description
di dalam TargetHealth
untuk memeriksa apakah proksi dapat berkomunikasi dengan instans DB acuan.
-
Nilai
State
dariAVAILABLE
mengindikasikan bahwa proksi dapat terhubung ke instans DB. -
Nilai
State
dariUNAVAILABLE
mengindikasikan masalah koneksi sementara atau permanen. Dalam kasus ini, periksa kolomReason
danDescription
. Misalnya, jikaReason
memiliki nilaiPENDING_PROXY_CAPACITY
, coba hubungkan lagi setelah proksi menyelesaikan operasi penskalaan. JikaReason
memiliki nilaiUNREACHABLE
,CONNECTION_FAILED
, atauAUTH_FAILURE
, gunakan penjelasan dari kolomDescription
untuk membantu Anda mendiagnosis masalah. -
Kolom
State
mungkin memiliki nilaiREGISTERING
dalam waktu yang singkat sebelum berubah keAVAILABLE
atauUNAVAILABLE
.
Jika perintah Netcat (nc
) berikut berhasil, Anda dapat mengakses titik akhir proxy dari EC2 instance atau sistem lain tempat Anda masuk. Perintah ini melaporkan kegagalan jika Anda tidak VPC sama dengan proxy dan database terkait. Anda mungkin dapat masuk langsung ke database tanpa berada di tempat yang samaVPC. Namun, Anda tidak dapat masuk ke proxy kecuali Anda berada di proxy yang samaVPC.
nc -zx
MySQL_proxy_endpoint
3306 nc -zxPostgreSQL_proxy_endpoint
5432
Anda dapat menggunakan perintah berikut untuk memastikan bahwa EC2 instance Anda memiliki properti yang diperlukan. Secara khusus, VPC untuk EC2 instance harus sama dengan yang terhubung dengan proxy. VPC
aws ec2 describe-instances --instance-ids
your_ec2_instance_id
Periksa rahasia Secrets Manager yang digunakan oleh proksi.
aws secretsmanager list-secrets aws secretsmanager get-secret-value --secret-id
your_secret_id
Pastikan bahwa SecretString
bidang yang ditampilkan oleh get-secret-value
dikodekan sebagai JSON string yang menyertakan username
dan password
bidang. Contoh berikut menunjukkan format kolom SecretString
.
{
"ARN": "some_arn
",
"Name": "some_name
",
"VersionId": "some_version_id",
"SecretString": '{"username":"some_username","password":"some_password
"}',
"VersionStages": [ "some_stage
" ],
"CreatedDate": some_timestamp
}
Masalah dan solusi umum
Bagian ini menjelaskan beberapa masalah umum dan solusi potensial saat menggunakan RDS Proxy.
Setelah menjalankan aws rds describe-db-proxy-targets
CLI perintah, jika TargetHealth
deskripsi menyatakanProxy does not have any registered
credentials
, verifikasi yang berikut:
-
Ada kredensial yang terdaftar bagi pengguna untuk mengakses proksi.
-
IAMPeran untuk mengakses rahasia Secrets Manager yang digunakan oleh proxy valid.
Anda mungkin mengalami RDS peristiwa berikut saat membuat atau menghubungkan ke proxy DB.
Kategori | RDSID acara | Deskripsi |
---|---|---|
kegagalan |
RDS- EVENT -0243 | RDStidak dapat menyediakan kapasitas untuk proxy karena tidak ada cukup alamat IP yang tersedia di subnet Anda. Untuk memperbaiki masalah ini, pastikan subnet Anda memiliki jumlah minimum alamat IP yang tidak digunakan. Untuk menentukan jumlah yang direkomendasikan untuk kelas instans Anda, lihat Perencanaan untuk kapasitas alamat IP. |
kegagalan |
RDS- EVENT -0275 |
RDSmembatasi beberapa koneksi ke proxy DB |
Anda mungkin mengalami masalah berikut saat membuat proksi baru atau terhubung ke proksi.
Kesalahan | Penyebab atau solusi |
---|---|
|
Pilih IAM peran yang ada alih-alih memilih untuk membuat yang baru. |
Anda mungkin mengalami masalah berikut saat menghubungkan ke SQL proxy Saya.
Kesalahan | Penyebab atau solusi |
---|---|
ERROR 1040 (HY000): Connections rate limit exceeded (
|
Tingkat permintaan koneksi dari klien ke proksi telah melampaui batas. |
ERROR 1040 (HY000): IAM authentication rate limit exceeded
|
Jumlah permintaan simultan dengan IAM otentikasi dari klien ke proxy telah melampaui batas. |
ERROR 1040 (HY000): Number simultaneous connections exceeded (
|
Jumlah permintaan koneksi simultan dari klien ke proksi telah melampaui batas. |
|
Rahasia Secrets Manager yang digunakan oleh proksi tidak cocok dengan nama pengguna dan kata sandi dari pengguna basis data yang sudah ada. Perbarui kredensial dalam rahasia Secrets Manager, atau pastikan pengguna basis data ada dan memiliki kata sandi yang sama dengan yang ada dalam rahasia. |
ERROR 1105 (HY000): Unknown error
|
Terjadi kesalahan yang tidak diketahui. |
ERROR 1231 (42000): Variable ''character_set_client'' can't be set to the value of
|
Nilai yang diatur untuk parameter |
ERROR 3159 (HY000): This RDS Proxy requires TLS connections.
|
Anda mengaktifkan pengaturan Memerlukan Transport Layer Security di proxy tetapi koneksi Anda menyertakan parameter
|
ERROR 2026 (HY000): SSL connection error: Internal Server
|
TLSJabat tangan ke proxy gagal. Beberapa kemungkinan alasannya meliputi:
|
ERROR 9501 (HY000): Timed-out waiting to acquire database connection
|
Waktu tunggu proksi untuk memperoleh koneksi basis data habis. Beberapa kemungkinan alasannya meliputi:
|
Anda mungkin mengalami masalah berikut saat menghubungkan ke proxy PostgreSQL.
Kesalahan | Penyebab | Solusi |
---|---|---|
|
Pengguna mencoba terhubung ke database menggunakan IAM otentikasi dengan pengaturan |
Pengguna perlu terhubung ke database menggunakan pengaturan minimum |
|
Tidak ada rahasia Secrets Manager untuk peran ini. |
Tambahkan rahasia Secrets Manager untuk peran ini. Untuk informasi selengkapnya, lihat Menyiapkan AWS Identity and Access Management (IAM) kebijakan untuk RDS Proxy. |
|
Klien basis data yang digunakan untuk terhubung ke proksi menggunakan mekanisme autentikasi yang saat ini tidak didukung oleh proksi. |
Jika Anda tidak menggunakan IAM otentikasi, gunakan otentikasi MD5 atau SCRAM kata sandi. |
|
Klien basis data yang digunakan untuk terhubung ke proksi tidak mengirimkan nama pengguna saat mencoba membangun koneksi. |
Pastikan untuk menentukan nama pengguna saat mengatur koneksi ke proxy menggunakan SQL klien Postgre pilihan Anda. |
|
Klien mencoba terhubung menggunakan IAM otentikasi, tetapi SSL tidak diaktifkan. |
Aktifkan SSL di klien PostgreSQL. |
|
Pengguna mengaktifkan opsi Memerlukan Transport Layer Security tetapi mencoba terhubung dengan |
Untuk memperbaiki kesalahan ini, lakukan salah satu tindakan berikut:
|
|
Kesalahan ini mungkin terjadi karena alasan berikut:
|
Untuk memperbaiki kesalahan ini, lakukan tindakan berikut:
|
|
Kata sandi untuk peran ini tidak cocok dengan rahasia Secrets Manager. |
Periksa rahasia untuk peran ini di Secrets Manager untuk melihat apakah kata sandinya sama dengan apa yang digunakan di klien Postgre SQL Anda. |
|
Ada masalah dengan IAM token yang digunakan untuk IAM otentikasi. |
Buat token autentikasi baru dan gunakan dalam koneksi baru. |
|
SQLKlien Postgre yang digunakan untuk terhubung ke proxy menggunakan protokol yang lebih tua dari 3.0. |
Gunakan SQL klien Postgre yang lebih baru yang mendukung protokol pesan 3.0. Jika Anda menggunakan Postgre SQL |
|
SQLKlien Postgre yang digunakan untuk terhubung ke proxy mencoba menggunakan mode replikasi streaming, yang saat ini tidak didukung oleh Proxy. RDS |
Matikan mode replikasi streaming di SQL klien Postgre yang digunakan untuk terhubung. |
|
Melalui pesan startup, SQL klien Postgre yang digunakan untuk terhubung ke proxy meminta opsi yang saat ini tidak didukung oleh Proxy. RDS |
Matikan opsi yang ditampilkan sebagai tidak didukung dari pesan di atas di SQL klien Postgre yang digunakan untuk menghubungkan. |
|
Jumlah permintaan simultan dengan IAM otentikasi dari klien ke proxy telah melampaui batas. |
Kurangi tingkat di mana koneksi menggunakan IAM otentikasi dari SQL klien Postgre dibuat. |
|
Jumlah permintaan koneksi simultan dari klien ke proksi telah melampaui batas. |
Kurangi jumlah koneksi aktif dari SQL klien Postgre ke proxy iniRDS. |
|
Tingkat permintaan koneksi dari klien ke proksi telah melampaui batas. |
Kurangi tingkat di mana koneksi dari SQL klien Postgre dibuat. |
|
Terjadi kesalahan yang tidak diketahui. |
Hubungi AWS Support untuk menyelidiki masalah ini. |
|
Waktu tunggu proksi untuk memperoleh koneksi basis data habis. Beberapa kemungkinan alasannya meliputi:
|
Kemungkinan solusinya sebagai berikut:
|
|
Koneksi basis data yang dibangun dari proksi menampilkan kesalahan. |
Solusinya bergantung dari kesalahan basis data tertentu. Salah satu contohnya adalah: |