Optimiziral je zmogljivost Java JDBC-jevih konfiguracij rewriteBatchedStatements, allowPublicKeyRetrieval, allowMultiQuery in sslMode.
Dokumentacija vseh konfiguracijskih lastnosti jdbc:Prijava do hiperpovezave je vidna.
Pregled:
allowPublicKeyRetrieval
Ko uporabljate MySQL 8.0, po ponovnem zagonu aplikacije, ste pozvani k com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Pridobivanje javnega ključa ni dovoljeno
Najlažja rešitev je, da jo dodaš po povezaviallowPublicKeyRetrieval=true
Če uporabnik uporablja sha256_password avtentikacijo, mora biti geslo med prenosom zaščiteno s protokolom TLS, če pa javni ključ RSA ni na voljo, se lahko uporabi javni ključ, ki ga zagotovi strežnik; RSA javni ključ strežnika je mogoče določiti v povezavi preko ServerRSAPublicKeyFile ali parametra AllowPublicKeyRetrieval=True, da odjemalec pridobi javni ključ od strežnika; Vendar pa je treba opozoriti, da lahko AllowPublicKeyRetrieval=True povzroči, da zlonamerni agenti pridobijo gesla v osnovnem besedilu preko man-in-the-middle napadov (MITM), zato je privzeto izklopljen in mora biti izrecno omogočen.
prepišiBatchedStatements
Da bi dosegli visoko zmogljivo serijsko vstavljanje z dodajanjem parametra rewriteBatchedStatements v URL JDBC povezave v MySQL in zagotavljanjem garancije za gonilnik 5.1.13 ali novejšo. Privzeto MySQL JDBC gonilnik ignorira ukaz executeBatch(), razdeli niz SQL ukazov, ki jih pričakujemo, da bodo izvedeni v serijah, in jih enega za drugim pošlje v MySQL bazo podatkov. Le z nastavitvijo parametra rewriteBatchedStatements na true bo gonilnik SQL izvajal v serijah Ta možnost velja tudi za INSERT/UPDATE/DELETE
Privzeto MySQL Jdbc gonilnik ignorira ukaz executeBatch(), razbije niz SQL stavkov, za katere pričakujemo, da jih bodo izvajali v serijah, in jih enega za drugim pošlje v MySQL bazo podatkov, kar neposredno povzroča nizko zmogljivost.
Samo z nastavitvijo parametra rewriteBatchedStatements na true, vam gonilnik pomaga izvajati SQL v množični obliki (jdbc:mysql://ip:port/db?)rewriteBatchedStatements=resnično)
allowMultiQueries
Dovoljenje za uporabo'; ' Loči več poizvedb (resnično/neresnično) v eni izjavi. Privzeta vrednost je "false", kar ne vpliva na metode addBatch() in executeBatch(), ki sta odvisni od rewriteBatchStatements.
Ko se MySQL poveže z bazo podatkov, dodajte izjavo:"allowMultiQueries=trueVloga ":
1. Za SQL izjavo lahko uporabite podpičje, da dosežete izvajanje več stavkov. 2. Lahko se izvaja paketno procesiranje in hkrati se izdajo več SQL izjav.
sslMode
Privzeto so omrežne povezave šifrirane prek SSL; Ta lastnost vam omogoča, da izklopite varno povezavo ali izberete drugo stopnjo varnosti. Dovoljene so naslednje vrednosti: "DISABLED" – vzpostavi se nešifrirana povezava; "PREDNOSTNO" - (privzeto) Če strežnik omogoči šifrirane povezave, se vzpostavi šifrirana povezava, sicer se povezava vrne na nešifrirano povezavo; "ZAHTEVANO" - Vzpostavite varno povezavo, če jo je strežnik omogočil, sicer ne uspe; "VERIFY_CA" - Podobno kot "REQUIRED", vendar dodatno preverja TLS certifikat strežnika glede na potrdilo konfiguriranega certifikacijskega organa (CA); "VERIFY_IDENTITY" - kot "VERIFY_CA",
Ta atribut zamenja zastarele atribute "useSSL", "requireSSL" in "verifyServerCertificate", ki so še vedno sprejeti, vendar pretvorjeni v vrednost "sslMode", če "sslMode" ni izrecno nastavljen: "useSSL=false" se pretvori v "sslMode=disabled"; {"useSSL=true", "requireSSL=false", "verifyServerCertificate=false"} je prevedeno kot "sslMode=PREFERRED"; {"useSSL=true", "requireSSL=true", "verifyServerCertificate=false"} je prevedeno kot "sslMode=REQUIRED"; {"useSSL=true" IN "verifyServerCertificate=true"} je prevedeno kot "Privzeta nastavitev za "sslMode" je "PREFERRED", kar je ekvivalentno tradicionalnim nastavitvam "useSSL=true", "requireSSL=false" in "verifyServerCertificate=false", ki so enake kot pri Connector/ Privzete nastavitve za J 8.0.12 in starejše različice so v nekaterih primerih drugačne. Aplikacije, ki še vedno uporabljajo stare atribute in se zanašajo na stare privzete nastavitve, je treba pregledati. Privzeta nastavitev za "sslMode" je "PREFERRED", ki je enakovredna tradicionalnim nastavitvam "useSSL=true", "requireSSL=false" in "verifyServerCertificate=false", kar se razlikuje od privzete nastavitve za Connector/J 8.0.12 in starejše v nekaterih primerih. Aplikacije, ki še vedno uporabljajo stare atribute in se zanašajo na stare privzete nastavitve, je treba pregledati. V nekaterih primerih je to 12 let ali prej. Aplikacije, ki še vedno uporabljajo stare atribute in se zanašajo na stare privzete nastavitve, je treba pregledati. V nekaterih primerih je to 12 let ali prej. Aplikacije, ki še vedno uporabljajo stare atribute in se zanašajo na stare privzete nastavitve, je treba pregledati.
Če je "sslMode" eksplicitno nastavljen, se stara lastnost ignorira. Če "sslMode" ali "useSSL" ni izrecno nastavljen, se uporabi privzeta nastavitev "sslMode=PREFERRED".
JDBC nastavitve za izklop varnih povezav:sslmode=onemogočen
|