|
|
Publisert 2022-2-11 13:59:18
|
|
|

Optimaliserte ytelsen til Java JDBCs rewriteBatchedStatements, allowPublicKeyRetrieval, allowMultiQueries og sslMode-konfigurasjoner.
jdbc All konfigurasjonsegenskaper dokumentasjon:Innloggingen med hyperkoblingen er synlig.
Anmeldelse:
allowPublicKeyRetrieval
Når du bruker MySQL 8.0, etter å ha startet appen på nytt, blir du bedt om com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval er ikke tillatt
Den enkleste løsningen er å legge den til etter tilkoblingenallowPublicKeyRetrieval=true
Hvis brukeren bruker sha256_password autentisering, må passordet beskyttes under overføring ved hjelp av TLS-protokollen, men hvis RSA-offentlig nøkkel ikke er tilgjengelig, kan den offentlige nøkkelen som serveren gir brukes; Den offentlige RSA-nøkkelen til serveren kan spesifiseres i tilkoblingen via ServerRSAPublicKeyFile, eller parameteren AllowPublicKeyRetrieval=True for å la klienten hente den offentlige nøkkelen fra serveren; Det bør imidlertid bemerkes at AllowPublicKeyRetrieval=True kan føre til at ondsinnede agenter får tilgang til klartekstpassord gjennom man-in-the-middle-angrep (MITM), så det er slått av som standard og må eksplisitt aktiveres.
rewriteBatchedStatements
For å oppnå høyytelses batch-innsetting ved å legge til parameteren rewriteBatchedStatements i URL-en til JDBC-tilkoblingen i MySQL og sikre at driverversjon 5.1.13 eller nyere er garantert. Som standard ignorerer MySQL JDBC-driveren executeBatch()-setningen, deler opp et sett med SQL-setninger som vi forventer å kjøre i batcher, og sender dem til MySQL-databasen én etter én. Kun ved å sette parameteren rewriteBatchedStatements til true vil driveren kjøre SQL i batcher Dette alternativet gjelder også for INSERT/UPDATE/DELETE
Som standard ignorerer MySQL Jdbc-driveren executeBatch()-setningen, bryter opp et sett med SQL-setninger vi forventer å kjøre i batcher, og sender dem til MySQL-databasen én etter én, noe som direkte fører til lav ytelse.
Kun ved å sette parameteren rewriteBatchedStatements til true, vil driveren hjelpe deg å kjøre SQL i bulk (jdbc:mysql://ip:port/db?)rewriteBatchedStatements=true)
allowMultiQueries
Tillatelse til å bruke'; ' Separerer flere spørringer (sann/falsk) i én setning. Standardverdien er "false", noe som ikke påvirker addBatch() og executeBatch()-metodene, som er avhengige av rewriteBatchStatements.
Når MySQL kobler til en database, legg til setningen:allowMultiQueries=trueRollen til ":
1. Du kan ha et semikolon etter SQL-setningen for å oppnå multi-setningsutførelse. 2. Batchbehandling kan utføres og flere SQL-setninger kan utstedes samtidig.
sslMode
Som standard er nettverkstilkoblinger SSL-krypterte; Denne egenskapen lar deg slå av den sikre tilkoblingen, eller velge et annet sikkerhetsnivå. Følgende verdier er tillatt: "DEAKTIVERT" – en ukryptert tilkobling etableres; "FORETREKKT" - (standard) Hvis serveren aktiverer krypterte tilkoblinger, etableres en kryptert tilkobling, ellers faller den tilbake til en ukryptert tilkobling; "PÅKREVD" - Etabler en sikker tilkobling hvis serveren har aktivert den, ellers feiler den; "VERIFY_CA" - Ligner på "REQUIRED", men validerer i tillegg serverens TLS-sertifikat mot det konfigurerte sertifikatet fra sertifikatmyndigheten (CA); "VERIFY_IDENTITY" – som "VERIFY_CA",
Denne attributten erstatter de utdaterte gamle attributtene "useSSL", "requireSSL" og "verifyServerCertificate", som fortsatt aksepteres, men konverteres til verdien "sslMode" hvis "sslMode" ikke er eksplisitt satt: "useSSL=false" konverteres til "sslMode=disabled"; {"useSSL=true", "requireSSL=false", "verifyServerCertificate=false"} oversettes som "sslMode=FORETREKKET"; {"useSSL=true", "requireSSL=true", "verifyServerCertificate=false"} oversettes som "sslMode=REQUIRED"; {"useSSL=true" OG "verifyServerCertificate=true"} oversettes som "Standardinnstillingen for "sslMode" er "FORETREKKT", som tilsvarer de tradisjonelle innstillingene "useSSL=true", "requireSSL=false" og "verifyServerCertificate=false", som er den samme som Connector/ Standardinnstillingene for J 8.0.12 og tidligere versjoner er forskjellige i noen tilfeller. Applikasjoner som fortsetter å bruke de gamle attributtene og er avhengige av deres gamle standardinnstillinger bør gjennomgås. Standardinnstillingen for "sslMode" er "FORETRAKET", som tilsvarer de tradisjonelle innstillingene "useSSL=true", "requireSSL=false" og "verifyServerCertificate=false", som i noen tilfeller er forskjellig fra standardinnstillingen for Connector/ J 8.0.12 og tidligere. Applikasjoner som fortsetter å bruke de gamle attributtene og er avhengige av deres gamle standardinnstillinger bør gjennomgås. I noen tilfeller er det 12 eller tidligere. Applikasjoner som fortsetter å bruke de gamle attributtene og er avhengige av deres gamle standardinnstillinger bør gjennomgås. I noen tilfeller er det 12 eller tidligere. Applikasjoner som fortsetter å bruke de gamle attributtene og er avhengige av deres gamle standardinnstillinger bør gjennomgås.
Hvis "sslMode" er eksplisitt satt, ignoreres den gamle egenskapen. Hvis "sslMode" eller "useSSL" ikke er eksplisitt satt, brukes standardinnstillingen "sslMode=FORETREKKER".
JDBC-innstillinger for å slå av sikre tilkoblinger:sslmode=deaktivert
|
Foregående:Hvordan omdøpe filer i batcher i LinuxNeste:Hvordan begrense taiwanske brukere fra å registrere seg, legge ut informasjon når som helst, og be om råd om hvordan man skriver.
|