Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 13228|Risposta: 3

[Fonte] RewriteBatchedStatements di Java JDBC, allowPublicKeyRetrieval...

[Copiato link]
Pubblicato il 11-2-2022 13:59:18 | | |
Ottimizzato le prestazioni delle configurazioni rewriteBatchedStatements, allowPublicKeyRetrieval, allowMultiQueries e sslMode di Java JDBC.

Documentazione di tutte le proprietà di configurazione di jdbc:Il login del link ipertestuale è visibile.

Recensione:

.NET/C# Ottimizzato le prestazioni di SslMode per database MySQL
https://www.itsvse.com/thread-9956-1-1.html

allowRunRichUnUsPublicKeyRetrieval

Quando si utilizza MySQL 8.0, dopo aver riavviato l'app, viene chiesto com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Il recupero della chiave pubblica non è permesso

La soluzione più semplice è aggiungerlo dopo la connessioneallowPublicKeyRetrieval=true

Se l'utente utilizza sha256_password autenticazione, la password deve essere protetta durante il transito tramite il protocollo TLS, ma se la chiave pubblica RSA non è disponibile, la chiave pubblica fornita dal server può essere utilizzata; La chiave pubblica RSA del server può essere specificata nella connessione tramite ServerRSAPublicKeyFile, oppure il parametro AllowPublicKeyRetrieval=True per permettere al client di ottenere la chiave pubblica dal server; Tuttavia, va notato che AllowPublicKeyRetrieval=True può far sì che agenti dannosi ottengano password in chiaro tramite attacchi man-in-the-middle (MITM), quindi viene disattivata di default e deve essere esplicitamente abilitata.



rewriteBatchedStatements

Per ottenere un'inserzione batch ad alte prestazioni aggiungendo il parametro rewriteBatchedStatements all'URL della connessione JDBC in MySQL e assicurando che la versione del driver 5.1.13 o successiva sia garantita. Di default, il driver JDBC MySQL ignora l'istruzione executeBatch(), divide un insieme di istruzioni SQL che ci aspettiamo di eseguire in batch e le invia al database MySQL una per una.
Solo impostando il parametro rewriteBatchedStatements su true il driver eseguirà l'SQL in batch
Questa opzione è valida anche per INSERIRE/AGGIORNARE/ELIMINARE

Di default, il driver MySQL Jdbc ignora l'istruzione executeBatch(), scompone un insieme di istruzioni SQL che ci aspettiamo di eseguire in batch e le invia al database MySQL una per una, causando direttamente basse prestazioni.

Solo impostando il parametro rewriteBatchedStatements su true, il driver ti aiuterà a eseguire SQL in massa (jdbc:mysql://ip:port/db?)rewriteBatchedStatements=true)


allowMultiQueries

Permesso di utilizzo'; 'Separa più query (vero/falso) in un'unica istruzione. Il valore predefinito è "false", che non influisce sui metodi addBatch() ed executeBatch(), che dipendono da rewriteBatchStatements.

Quando MySQL si connette a un database, aggiungi la dichiarazione:allowMultiQueries=trueIl ruolo di ":

1. Puoi portare un punto e virgola dopo l'istruzione SQL per ottenere l'esecuzione multi-statement.
2. L'elaborazione batch può essere eseguita e più istruzioni SQL possono essere emesse contemporaneamente.


sslMode

Di default, le connessioni di rete sono criptate SSL; Questa funzione ti permette di disattivare la connessione sicura o selezionare un livello di sicurezza diverso. Sono consentiti i seguenti valori: "DISABILITATO" - viene stabilita una connessione non criptata; "PREFERITO" - (predefinito) Se il server abilita connessioni criptate, viene stabilita una connessione criptata, altrimenti torna a una connessione non criptata; "OBBLIGATORIO" - Stabilire una connessione sicura se il server l'ha abilitata, altrimenti fallisce; "VERIFY_CA" - Simile a "REQUIRED", ma inoltre valida il certificato TLS del server rispetto al certificato dell'autorità di certificazione (CA) configurato; "VERIFY_IDENTITY" - come "VERIFY_CA",

Questo attributo sostituisce i vecchi attributi obsoleti "useSSL", "requireSSL" e "verifyServerCertificate", che sono ancora accettati ma convertiti nel valore di "sslMode" se "sslMode" non è esplicitamente impostato: "useSSL=false" viene convertito in "sslMode=disabled"; {"useSSL=true", "requireSSL=false", "verifyServerCertificate=false"} si traduce come "sslMode=PREFERRED"; {"useSSL=true", "requireSSL=true", "verifyServerCertificate=false"} si traduce come "sslMode=REQUIRED"; {"useSSL=true" E "verifyServerCertificate=true"} si traduce come "L'impostazione predefinita per "sslMode" è "PREFERRED", che equivale alle tradizionali impostazioni "useSSL=true", "requireSSL=false" e "verifyServerCertificate=false", che corrispondono al Connector/ Le impostazioni predefinite per J 8.0.12 e versioni precedenti sono diverse in alcuni casi. Le applicazioni che continuano a utilizzare gli attributi vecchi e si basano sui loro vecchi valori predefiniti dovrebbero essere esaminate. L'impostazione predefinita per "sslMode" è "PREFERRED", che equivale alle impostazioni tradizionali di "useSSL=true", "requireSSL=false" e "verifyServerCertificate=false", che in alcuni casi differisce dall'impostazione predefinita per Connector/ J 8.0.12 e precedenti. Le applicazioni che continuano a utilizzare gli attributi vecchi e si basano sui loro vecchi valori predefiniti dovrebbero essere esaminate. In alcuni casi è 12 o prima. Le applicazioni che continuano a utilizzare gli attributi vecchi e si basano sui loro vecchi valori predefiniti dovrebbero essere esaminate. In alcuni casi è 12 o prima. Le applicazioni che continuano a utilizzare gli attributi vecchi e si basano sui loro vecchi valori predefiniti dovrebbero essere esaminate.

Se "sslMode" è esplicitamente impostato, la vecchia proprietà viene ignorata. Se "sslMode" o "useSSL" non sono esplicitamente impostati, viene applicata l'impostazione predefinita "sslMode=PREFERRED".

Impostazioni JDBC per disattivare le connessioni sicure:sslmode=disabilitato




Precedente:Come rinominare file in batch su Linux
Prossimo:Come limitare la registrazione degli utenti taiwanesi, pubblicare informazioni a piacimento e chiedere consigli su come scrivere.
 Padrone di casa| Pubblicato il 11-2-2022 14:04:39 |
Stringa di connessione a database a molla

Pubblicato il 13-2-2022 16:31:57 |
Impara a imparare.
 Padrone di casa| Pubblicato il 25-04-2024 08:38:32 |
Eccezione 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): Il metodo di autenticazione 'caching_sha2_password' fallito. O utilizzare una connessione sicura, specificare la chiave pubblica RSA del server con ServerRSAPublicKeyFile, oppure impostare AllowPublicKeyRetrieval=True.


soluzione

Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com