Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 13228|Jawab: 3

[Sumber] RewriteBatchedStatements Java JDBC, allowPublicKeyRetrieval...

[Salin tautan]
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:

.NET/C# Mengoptimalkan performa SslMode untuk database MySQL
https://www.itsvse.com/thread-9956-1-1.html

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 Linux
Depan:Cara membatasi pengguna Taiwan untuk mendaftar, memposting informasi sesuka hati, dan meminta saran tentang cara menulis.
 Tuan tanah| Dipaparkan pada 2022-2-11 14:04:39 |
string koneksi database pegas

Dipaparkan pada 2022-2-13 16:31:57 |
Belajar belajar.
 Tuan tanah| Dipaparkan pada 2024-4-25 08:38:32 |
Pengecualian C#
System.InvalidOperationException: An exception has been raised that is likely due to a transient failure. Consider enabling transient error resiliency by adding 'EnableRetryOnFailure()' to the 'UseMySql' call.
---> MySqlConnector.MySqlException (0x80004005): Metode autentikasi 'caching_sha2_password' gagal. Gunakan koneksi aman, tentukan kunci publik RSA server dengan ServerRSAPublicKeyFile, atau atur AllowPublicKeyRetrieval=True.


larutan

Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com