


Java Sambungan - MySQL: Menyelesaikan masalah Pengecualian "Pengambilan Kunci Awam tidak dibenarkan"
Apabila cuba mewujudkan sambungan ke pangkalan data MySQL menggunakan penyambung Java 8.0.11, pembangun mungkin menghadapi pengecualian "Pengambilan Kunci Awam tidak dibenarkan". Ralat ini timbul semasa proses jabat tangan sambungan dan menandakan bahawa klien (aplikasi Java) tidak dibenarkan untuk mendapatkan kunci awam daripada pelayan untuk pengesahan.
Punca Pengecualian
Pengecualian berlaku apabila aplikasi Java cuba mendapatkan semula kunci awam pelayan, yang digunakan untuk menyulitkan dan menghantar maklumat sensitif seperti kata laluan pengguna. Secara lalai, MySQL tidak membenarkan pengambilan kunci awam untuk menghalang kemungkinan serangan man-in-the-middle (MITM).
Penyelesaian
Untuk menyelesaikan isu ini, aplikasi Java mesti dikonfigurasikan secara eksplisit untuk membenarkan pengambilan kunci awam apabila mewujudkan sambungan pangkalan data. Ini boleh dicapai dengan menentukan parameter allowPublicKeyRetrieval=true sebagai sebahagian daripada rentetan sambungan JDBC.
Berikut ialah contoh rentetan sambungan JDBC yang termasuk parameter allowPublicKeyRetrieval:
jdbc:mysql://localhost:3306/db?allowPublicKeyRetrieval=true
Perhatikan bahawa mendayakan pengambilan kunci awam menimbulkan potensi risiko keselamatan dengan menjadikan klien terdedah kepada serangan MITM jika sambungan tidak melalui saluran selamat (cth., HTTPS). Untuk tujuan pembangunan dan ujian, mungkin lebih selamat untuk melumpuhkan SSL dan nyatakan useSSL=false secara eksplisit dalam rentetan sambungan:
jdbc:mysql://localhost:3306/db?allowPublicKeyRetrieval=true&useSSL=false
Petua Tambahan
Jika isu berterusan walaupun menyatakan allowPublicKeyRetrieval=true, cuba langkah tambahan berikut:
- Pastikan konfigurasi SSL/TLS pelayan MySQL dikonfigurasikan dengan betul.
- Sahkan bahawa aplikasi Java menggunakan yang terkini versi penyambung MySQL JDBC.
- Lumpuhkan tembok api (sementara) untuk menghapuskan sebarang sekatan berkaitan rangkaian.
- Mulakan semula perkhidmatan MySQL untuk memastikan sambungan yang bersih.
Atas ialah kandungan terperinci Mengapa Aplikasi Java Saya Melemparkan Pengecualian \'Pengambilan Kunci Awam tidak dibenarkan\' Apabila Menyambung ke MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Mysql'sblobissusuipableforstoringbinarydatawithinarelationaldatabase, sementara

Toaddauserinmysql, gunakan: createuser'username '@' host'identifiedby'password '; here'showtodoitsecurely: 1) choosethehostcareflelytocon trolaccess.2) SetResourcelImitSwithOptionsLikeMax_queries_per_hour.3) USESTRONG, UNIQUEPASSWORDS.4) Enforcessl/TLSConnectionswith

Toavoidcommonmistakeswithstringdatatypesinmysql, fahamistringtypenuances, choosetherighttype, danManageencodingandcollationsettingsefectively.1) usecharfarfixed-lengthstrings, varcharforvariable-length, andtext/blobforlargerdata.2)

Mysqloffersechar, varchar, teks, anddenumforstringdata.usecharforfixed-lengthstrings, varcharerforvariable-length, teks forlarger text, andenumforenforcingdataantegritywithaetofvalues.

Mengoptimumkan permintaan mysqlblob boleh dilakukan melalui strategi berikut: 1. Mengurangkan kekerapan pertanyaan gumpalan, gunakan permintaan bebas atau pemuatan kelewatan; 2. Pilih jenis gumpalan yang sesuai (seperti TinyBlob); 3. Pisahkan data gumpalan ke dalam jadual berasingan; 4. Mampat data gumpalan di lapisan aplikasi; 5. Indeks metadata gumpalan. Kaedah ini dapat meningkatkan prestasi dengan berkesan dengan menggabungkan pemantauan, caching dan data sharding dalam aplikasi sebenar.

Menguasai kaedah menambah pengguna MySQL adalah penting untuk pentadbir pangkalan data dan pemaju kerana ia memastikan keselamatan dan kawalan akses pangkalan data. 1) Buat pengguna baru menggunakan perintah CreateUser, 2) Berikan kebenaran melalui perintah geran, 3) Gunakan flushprivileges untuk memastikan kebenaran berkuatkuasa, 4) kerap mengaudit dan membersihkan akaun pengguna untuk mengekalkan prestasi dan keselamatan.

ChooseCHARforfixed-lengthdata,VARCHARforvariable-lengthdata,andTEXTforlargetextfields.1)CHARisefficientforconsistent-lengthdatalikecodes.2)VARCHARsuitsvariable-lengthdatalikenames,balancingflexibilityandperformance.3)TEXTisidealforlargetextslikeartic

Amalan terbaik untuk mengendalikan jenis data rentetan dan indeks dalam MySQL termasuk: 1) Memilih jenis rentetan yang sesuai, seperti char untuk panjang tetap, varchar untuk panjang berubah, dan teks untuk teks besar; 2) berhati-hati dalam pengindeksan, elakkan daripada mengindeks, dan buat indeks untuk pertanyaan umum; 3) Gunakan indeks awalan dan indeks teks penuh untuk mengoptimumkan carian rentetan panjang; 4) Secara kerap memantau dan mengoptimumkan indeks untuk memastikan indeks kecil dan cekap. Melalui kaedah ini, kita dapat mengimbangi membaca dan menulis prestasi dan meningkatkan kecekapan pangkalan data.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Dreamweaver Mac版
Alat pembangunan web visual
