Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 13228|Antwoord: 3

[Bron] Java JDBC's rewriteBatchedStatements, allowPublicKeyRetrieval...

[Link kopiëren]
Geplaatst op 2022-2-11 13:59:18 | | |
De prestaties van Java JDBC's rewriteBatchedStatements, allowPublicKeyRetrieval, allowMultiQueries en sslMode-configuraties geoptimaliseerd.

jdbc Alle configuratie-eigenschappen documentatie:De hyperlink-login is zichtbaar.

Recensie:

.NET/C# De prestaties van SslMode voor MySQL-databases geoptimaliseerd
https://www.itsvse.com/thread-9956-1-1.html

allowPublicKeyRetrieval

Bij gebruik van MySQL 8.0, krijg je na het herstarten van de app de vraag com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is niet toegestaan

De makkelijkste oplossing is om het pas na de verbinding toe te voegenallowPublicKeyRetrieval=waar

Als de gebruiker sha256_password authenticatie gebruikt, moet het wachtwoord tijdens het transport worden beschermd met het TLS-protocol, maar als de RSA publieke sleutel niet beschikbaar is, kan de publieke sleutel die door de server wordt geleverd worden gebruikt; De RSA publieke sleutel van de server kan in de verbinding worden opgegeven via ServerRSAPublicKeyFile, of de parameter AllowPublicKeyRetrieval=True om de client in staat te stellen de publieke sleutel van de server te verkrijgen; Het moet echter worden opgemerkt dat AllowPublicKeyRetrieval=True ervoor kan zorgen dat kwaadwillende agenten platte tekstwachtwoorden verkrijgen via man-in-the-middle-aanvallen (MITM), dus het is standaard uitgeschakeld en moet expliciet worden ingeschakeld.



rewriteBatchedStatements

Om high-performance batchinsertie te bereiken door de parameter rewriteBatchedStatements toe te voegen aan de URL van de JDBC-verbinding in MySQL en ervoor te zorgen dat de driverversie 5.1.13 of later gegarandeerd is. Standaard negeert de MySQL JDBC-driver de executeBatch()-instructie, splitst een set SQL-statements die we verwachten in batches uit te voeren, en stuurt deze één voor één naar de MySQL-database.
Alleen door de parameter rewriteBatchedStatements op true te zetten, voert de driver de SQL in batches uit
Deze optie geldt ook voor INSERT/UPDATE/DELETE

Standaard negeert de MySQL Jdbc-driver de executeBatch()-instructie, splitst een set SQL-instructies op die we verwachten in batches uit te voeren, en stuurt deze één voor één naar de MySQL-database, wat direct leidt tot lage prestaties.

Alleen door de rewriteBatchedStatements-parameter op true te zetten, helpt de driver je om SQL in bulk uit te voeren (jdbc:mysql://ip:port/db?)rewriteBatchedStatements=waar)


allowMultiQueries

Toestemming om te gebruiken'; ' Scheidt meerdere queries (waar/onwaar) in één stelling. De standaardwaarde is "false", wat geen invloed heeft op de addBatch() en executeBatch() methoden, die afhankelijk zijn van rewriteBatchStatements.

Wanneer MySQL verbinding maakt met een database, voeg dan de instructie toe:"allowMultiQueries=waarDe rol van ":

1. Je kunt een puntkomma achter de SQL-instructie dragen om multi-statements uitvoering te bereiken.
2. Batchverwerking kan worden uitgevoerd en meerdere SQL-instructies kunnen tegelijkertijd worden uitgegeven.


sslMode

Standaard zijn netwerkverbindingen SSL-versleuteld; Deze eigenschap stelt je in staat de beveiligde verbinding uit te schakelen of een ander beveiligingsniveau te selecteren. De volgende waarden zijn toegestaan: "GEDEACTIVEERD" - een niet-versleutelde verbinding wordt tot stand gebracht; "PREFERRED" - (standaard) Als de server versleutelde verbindingen inschakelt, wordt er een versleutelde verbinding tot stand gebracht, anders valt deze terug op een niet-versleutelde verbinding; "VEREIST" - Zet een veilige verbinding tot stand als de server deze heeft ingeschakeld, anders faalt het; "VERIFY_CA" - Vergelijkbaar met "VEREIST", maar valideert daarnaast het server TLS-certificaat tegen het geconfigureerde certificaat van de certificaatautoriteit (CA); "VERIFY_IDENTITY" - zoals "VERIFY_CA",

Deze attribuut vervangt de verouderde oude attributen "useSSL", "requireSSL" en "verifyServerCertificate", die nog steeds worden geaccepteerd maar worden omgezet naar de waarde van "sslMode" als "sslMode" niet expliciet is ingesteld: "useSSL=false" wordt omgezet naar "sslMode=disabled"; {"useSSL=true", "requireSSL=false", "verifyServerCertificate=false"} wordt vertaald als "sslMode=PREFERRED"; {"useSSL=true", "requireSSL=true", "verifyServerCertificate=false"} wordt vertaald als "sslMode=REQUIRED"; {"useSSL=true" EN "verifyServerCertificate=true"} wordt vertaald als "De standaardinstelling voor "sslMode" is "PREFERRED", wat gelijkstaat aan de traditionele "useSSL=true", "requireSSL=false" en "verifyServerCertificate=false" instellingen, die hetzelfde zijn als de Connector/ De standaardinstellingen voor J 8.0.12 en eerdere versies zijn in sommige gevallen anders. Applicaties die de oude attributen blijven gebruiken en vertrouwen op hun oude standaardinstellingen, moeten worden beoordeeld. De standaardinstelling voor "sslMode" is "PREFERRED", wat gelijkwaardig is aan de traditionele instellingen van "useSSL=true", "reproreSSL=false" en "verifyServerCertificate=false", wat in sommige gevallen verschilt van de standaardinstelling voor Connector/J 8.0.12 en eerder. Applicaties die de oude attributen blijven gebruiken en vertrouwen op hun oude standaardinstellingen, moeten worden beoordeeld. In sommige gevallen is het 12 uur of eerder. Applicaties die de oude attributen blijven gebruiken en vertrouwen op hun oude standaardinstellingen, moeten worden beoordeeld. In sommige gevallen is het 12 uur of eerder. Applicaties die de oude attributen blijven gebruiken en vertrouwen op hun oude standaardinstellingen, moeten worden beoordeeld.

Als "sslMode" expliciet is ingesteld, wordt de oude eigenschap genegeerd. Als "sslMode" of "useSSL" niet expliciet is ingesteld, wordt de standaardinstelling "sslMode=PREFERRED" toegepast.

JDBC-instellingen om beveiligde verbindingen uit te schakelen:sslmode=uitgeschakeld




Vorig:Hoe je bestanden in batches hernoemt in Linux
Volgend:Hoe je Taiwanese gebruikers kunt beperken bij registratie, informatie naar believen kunt plaatsen en advies kunt vragen over hoe je kunt schrijven.
 Huisbaas| Geplaatst op 2022-2-11 14:04:39 |
Spring database verbindingsstring

Geplaatst op 2022-13 16:31:57 |
Leer leren.
 Huisbaas| Geplaatst op 25-4-2024 08:38:32 |
C# uitzondering
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): Authenticatiemethode 'caching_sha2_password' mislukte. Gebruik ofwel een veilige verbinding, specificeer de RSA publieke sleutel van de server met ServerRSAPublicKeyFile, of stel AllowPublicKeyRetrieval=True.


oplossing

Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com