|
|
Dipaparkan pada 2022-2-11 13:59:18
|
|
|

Mengoptimalkan performa konfigurasi rewriteBatchedStatements Java JDBC, allowPublicKeyRetrieval, allowMultiQueries, dan sslMode.
Dokumentasi Properti Semua Konfigurasi JDBC:Login hyperlink terlihat.
Resensi:
allowPublicKeyRetrieval
Saat menggunakan MySQL 8.0, setelah memulai ulang aplikasi, Anda akan diminta com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Pengambilan Kunci Publik tidak diizinkan
Solusi termudah adalah menambahkannya setelah koneksiallowPublicKeyRetrieval=true
Jika pengguna menggunakan autentikasi sha256_password, kata sandi harus dilindungi dalam transit menggunakan protokol TLS, tetapi jika kunci publik RSA tidak tersedia, kunci publik yang disediakan oleh server dapat digunakan; Kunci publik RSA server dapat ditentukan dalam koneksi melalui ServerRSAPublicKeyFile, atau parameter AllowPublicKeyRetrieval=True untuk memungkinkan klien mendapatkan kunci publik dari server; Namun, perlu dicatat bahwa AllowPublicKeyRetrieval=True dapat menyebabkan agen jahat mendapatkan kata sandi teks biasa melalui serangan man-in-the-middle (MITM), sehingga dimatikan secara default dan harus diaktifkan secara eksplisit.
rewriteBatchedStatements
Untuk mencapai penyisipan batch berperforma tinggi dengan menambahkan parameter rewriteBatchedStatements ke URL koneksi JDBC di MySQL dan memastikan bahwa driver versi 5.1.13 atau yang lebih baru dijamin. Secara default, driver MySQL JDBC mengabaikan pernyataan executeBatch(), membagi sekumpulan pernyataan SQL yang kami harapkan untuk dijalankan dalam batch, dan mengirimkannya ke database MySQL satu per satu. Hanya dengan mengatur parameter rewriteBatchedStatements ke true, driver akan mengeksekusi SQL dalam batch Opsi ini juga berlaku untuk INSERT/UPDATE/DELETE
Secara default, driver MySQL Jdbc mengabaikan pernyataan executeBatch(), memecah serangkaian pernyataan SQL yang kita harapkan untuk dijalankan dalam batch, dan mengirimkannya ke database MySQL satu per satu, yang secara langsung menyebabkan performa rendah.
Hanya dengan mengatur parameter rewriteBatchedStatements ke true, driver akan membantu Anda mengeksekusi SQL secara massal (jdbc:mysql://ip:port/db?)rewriteBatchedStatements=true)
allowMultiQueries
Izin untuk menggunakan'; ' Memisahkan beberapa kueri (benar/salah) dalam satu pernyataan. Nilai defaultnya adalah "false", yang tidak memengaruhi metode addBatch() dan executeBatch(), yang bergantung pada rewriteBatchStatements.
Saat MySQL terhubung ke database, tambahkan pernyataan:"allowMultiQueries=truePeran ":
1. Anda dapat membawa titik koma setelah pernyataan SQL untuk mencapai eksekusi multi-pernyataan. 2. Pemrosesan batch dapat dilakukan dan beberapa pernyataan SQL dapat dikeluarkan secara bersamaan.
Mode ssl
Secara default, koneksi jaringan dienkripsi SSL; Properti ini memungkinkan Anda menonaktifkan koneksi aman, atau memilih tingkat keamanan yang berbeda. Nilai-nilai berikut diizinkan: "DISABLED" - koneksi yang tidak terenkripsi dibuat; "PREFERRED" - (default) Jika server mengaktifkan koneksi terenkripsi, koneksi terenkripsi dibuat, jika tidak, koneksi terenkripsi akan kembali ke koneksi yang tidak terenkripsi; "WAJIB" - Buat koneksi aman jika server telah mengaktifkannya, jika tidak, gagal; "VERIFY_CA" - Mirip dengan "WAJIB", tetapi juga memvalidasi sertifikat TLS server terhadap sertifikat otoritas sertifikat (CA) yang dikonfigurasi; "VERIFY_IDENTITY" - seperti "VERIFY_CA",
Atribut ini menggantikan atribut lama yang tidak digunakan lagi "useSSL", "requireSSL", dan "verifyServerCertificate", yang masih diterima tetapi dikonversi ke nilai "sslMode" jika "sslMode" tidak diatur secara eksplisit: "useSSL=false" dikonversi menjadi "sslMode=disabled"; {"useSSL=true", "requireSSL=false", "verifyServerCertificate=false"} diterjemahkan sebagai "sslMode=PREFERRED"; {"useSSL=true", "requireSSL=true", "verifyServerCertificate=false"} diterjemahkan sebagai "sslMode=REQUIRED"; {"useSSL=true" DAN "verifyServerCertificate=true"} diterjemahkan sebagai "Pengaturan default untuk "sslMode" adalah "PREFERRED", yang setara dengan pengaturan tradisional "useSSL=true", "requireSSL=false" dan "verifyServerCertificate=false", yang sama dengan Konektor/ Pengaturan default untuk J 8.0.12 dan versi sebelumnya berbeda dalam beberapa kasus. Aplikasi yang terus menggunakan atribut lama dan mengandalkan default lama harus ditinjau. Pengaturan default untuk "sslMode" adalah "PREFERRED", yang setara dengan pengaturan tradisional "useSSL=true", "requireSSL=false" dan "verifyServerCertificate=false", yang berbeda dari pengaturan default untuk Connector/ J 8.0.12 dan sebelumnya dalam beberapa kasus. Aplikasi yang terus menggunakan atribut lama dan mengandalkan default lama harus ditinjau. Dalam beberapa kasus itu 12 atau lebih awal. Aplikasi yang terus menggunakan atribut lama dan mengandalkan default lama harus ditinjau. Dalam beberapa kasus itu 12 atau lebih awal. Aplikasi yang terus menggunakan atribut lama dan mengandalkan default lama harus ditinjau.
Jika "sslMode" diatur secara eksplisit, properti lama akan diabaikan. Jika "sslMode" atau "useSSL" tidak diatur secara eksplisit, pengaturan default "sslMode=PREFERRED" diterapkan.
Pengaturan JDBC untuk mematikan koneksi aman:sslmode=dinonaktifkan
|
Mantan:Cara mengganti nama file secara berkelompok di LinuxDepan:Cara membatasi pengguna Taiwan untuk mendaftar, memposting informasi sesuka hati, dan meminta saran tentang cara menulis.
|