Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 13228|Svar: 3

[Källa] Java JDBC:s omskrivningBatchedStatements, allowPublicKeyRetrieval...

[Kopiera länk]
Publicerad den 2022-2-11 13:59:18 | | |
Optimerade prestandan för Java JDBC:s rewriteBatchedStatements, allowPublicKeyRetrieval, allowMultiQueries och sslMode-konfigurationer.

jdbc All Configuration Properties Dokumentation:Inloggningen med hyperlänken är synlig.

Recension:

.NET/C# Optimerade prestandan för SslMode för MySQL-databaser
https://www.itsvse.com/thread-9956-1-1.html

allowPublicKeyRetrieval

När du använder MySQL 8.0, efter att ha startat om appen, får du uppmaningen com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval är inte tillåten

Den enklaste lösningen är att lägga till den efter anslutningenallowPublicKeyRetrieval=true

Om användaren använder sha256_password autentisering måste lösenordet skyddas under överföring med TLS-protokollet, men om RSA:s publika nyckel inte är tillgänglig kan den publika nyckel som servern tillhandahåller användas; Den publika RSA-nyckeln för servern kan specificeras i anslutningen via ServerRSAPublicKeyFile, eller parametern AllowPublicKeyRetrieval=True för att låta klienten få den publika nyckeln från servern; Det bör dock noteras att AllowPublicKeyRetrieval=True kan få illvilliga agenter att få klartextlösenord genom man-in-the-middle-attacker (MITM), så det är avstängt som standard och måste vara explicit aktiverat.



rewriteBatchedStatements

För att uppnå högpresterande batchinsättning genom att lägga till parametern rewriteBatchedStatements i URL:en för JDBC-anslutningen i MySQL och säkerställa att drivrutinsversionen 5.1.13 eller senare garanteras. Som standard ignorerar MySQL JDBC-drivrutinen executeBatch()-satsen, delar upp en uppsättning SQL-satser som vi förväntar oss att köras i batcher och skickar dem till MySQL-databasen en efter en.
Endast genom att sätta parametern rewriteBatchedStatements till true kommer drivrutinen att köra SQL i batcher
Detta alternativ gäller även för INFOGA/UPPDATERA/TA BORT

Som standard ignorerar MySQL Jdbc-drivrutinen executeBatch()-satsen, delar upp en uppsättning SQL-satser som vi förväntar oss köra i batcher, och skickar dem till MySQL-databasen en efter en, vilket direkt orsakar låg prestanda.

Endast genom att sätta parametern rewriteBatchedStatements till true hjälper drivrutinen dig att köra SQL i bulk (jdbc:mysql://ip:port/db?)rewriteBatchedStatements=true)


allowMultiQueries

Tillstånd att använda'; ' Separerar flera frågor (sann/falsk) i ett påstående. Standardvärdet är "false", vilket inte påverkar metoderna addBatch() och executeBatch(), som är beroende av rewriteBatchStatements.

När MySQL ansluter till en databas, lägg till satsen:"allowMultiQueries=trueRollen för ":

1. Du kan ha ett semikolon efter SQL-satsen för att uppnå multi-statement exekvering.
2. Batchbearbetning kan utföras och flera SQL-satser kan utfärdas samtidigt.


sslMode

Som standard är nätverksanslutningar SSL-krypterade; Denna egenskap låter dig stänga av den säkra anslutningen eller välja en annan säkerhetsnivå. Följande värden är tillåtna: "DEPRIMERAD" – en okrypterad anslutning upprättas; "FÖREDRAGEN" - (standard) Om servern aktiverar krypterade anslutningar upprättas en krypterad anslutning, annars återgår den till en okrypterad anslutning; "KRÄVS" – Upprätta en säker anslutning om servern har aktiverat den, annars misslyckas det; "VERIFY_CA" – Liknande "REQUIRED", men validerar dessutom serverns TLS-certifikat mot det konfigurerade certifikatutverkningscertifikatet (CA); "VERIFY_IDENTITY" – som "VERIFY_CA",

Denna attribut ersätter de föråldrade gamla attributen "useSSL", "requireSSL" och "verifyServerCertificate", vilka fortfarande accepteras men konverteras till värdet "sslMode" om "sslMode" inte uttryckligen är satt: "useSSL=false" konverteras till "sslMode=disabled"; {"useSSL=true", "requireSSL=false", "verifyServerCertificate=false"} översätts som "sslMode=PREFERRED"; {"useSSL=true", "requireSSL=true", "verifyServerCertificate=false"} översätts som "sslMode=REQUIRED"; {"useSSL=true" OCH "verifyServerCertificate=true"} översätts till "Standardinställningen för "sslMode" är "FÖREDRAGEN", vilket motsvarar de traditionella inställningarna "useSSL=true", "requireSSL=false" och "verifyServerCertificate=false", vilket är samma som Connector/ Standardinställningarna för J 8.0.12 och tidigare versioner är annorlunda i vissa fall. Applikationer som fortsätter att använda de gamla attributen och förlitar sig på deras gamla standardinställningar bör granskas. Standardinställningen för "sslMode" är "FÖREDRAGEN", vilket motsvarar de traditionella inställningarna "useSSL=true", "requireSSL=false" och "verifyServerCertificate=false", vilket skiljer sig från standardinställningen för Connector/J 8.0.12 och tidigare i vissa fall. Applikationer som fortsätter att använda de gamla attributen och förlitar sig på deras gamla standardinställningar bör granskas. I vissa fall är det 12 eller tidigare. Applikationer som fortsätter att använda de gamla attributen och förlitar sig på deras gamla standardinställningar bör granskas. I vissa fall är det 12 eller tidigare. Applikationer som fortsätter att använda de gamla attributen och förlitar sig på deras gamla standardinställningar bör granskas.

Om "sslMode" uttryckligen sätts ignoreras den gamla egenskapen. Om "sslMode" eller "useSSL" inte är explicit inställd, tillämpas standardinställningen "sslMode=PREFERRED".

JDBC-inställningar för att stänga av säkra anslutningar:sslmode=inaktiverad




Föregående:Hur man byter namn på filer i batcher i Linux
Nästa:Hur man begränsar taiwanesiska användare från att registrera sig, postar information när man vill och ber om råd om hur man skriver.
 Hyresvärd| Publicerad den 2022-2-11 14:04:39 |
Spring Database Connection String

Publicerad den 2022-2-13 16:31:57 |
Lär dig att lära dig.
 Hyresvärd| Publicerad den 2024-4-25 08:38:32 |
C# undantag
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): Autentiseringsmetoden 'caching_sha2_password' misslyckades. Använd antingen en säker anslutning, ange serverns RSA-publika nyckel med ServerRSAPublicKeyFile, eller sätt AllowPublicKeyRetrieval=True.


lösning

Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com