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:
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
|