Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 13228|Antwort: 3

[Quelle] Java JDBCs RewriteBatchedStatements, allowPublicKeyRetrieval...

[Link kopieren]
Veröffentlicht am 11.2.2022, 13:59:18 | | |
Optimierte die Leistung der Konfigurationen rewriteBatchedStatements von Java JDBC, allowPublicKeyRetrieval, allowMultiQueries und sslMode.

jdbc Alle Konfigurationseigenschaften Dokumentation:Der Hyperlink-Login ist sichtbar.

Rezension:

.NET/C# Optimierte die Leistung von SslMode für MySQL-Datenbanken
https://www.itsvse.com/thread-9956-1-1.html

allowPublicKeyRetrieval

Wenn Sie MySQL 8.0 verwenden, werden Sie nach dem Neustart der App mit com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException aufgefordert: Public Key Retrieval ist nicht erlaubt

Der einfachste Workaround ist, es nach der Verbindung hinzuzufügenallowPublicKeyRetrieval=true

Wenn der Benutzer sha256_password Authentifizierung verwendet, muss das Passwort während der Übertragung mit dem TLS-Protokoll geschützt werden, aber wenn der öffentliche RSA-Schlüssel nicht verfügbar ist, kann der vom Server bereitgestellte öffentliche Schlüssel verwendet werden; Der öffentliche RSA-Schlüssel des Servers kann in der Verbindung über ServerRSAPublicKeyFile oder den Parameter AllowPublicKeyRetrieval=True angegeben werden, um dem Client zu ermöglichen, den öffentlichen Schlüssel vom Server zu erhalten; Es sollte jedoch beachtet werden, dass AllowPublicKeyRetrieval=True dazu führen kann, dass böswillige Agenten durch Man-in-the-Middle-Angriffe (Man-in-the-Middle-Angriffe) Klartextpasswörter erhalten, weshalb es standardmäßig deaktiviert und explizit aktiviert werden muss.



rewriteBatchedStatements

Um eine leistungsstarke Batch-Einfügung zu erreichen, indem der Parameter rewriteBatchedStatements zur URL der JDBC-Verbindung in MySQL hinzugefügt und sichergestellt wird, dass die Treiberversion 5.1.13 oder später garantiert ist. Standardmäßig ignoriert der MySQL-JDBC-Treiber die executeBatch()-Anweisung, teilt eine Reihe von SQL-Anweisungen auf, die wir in Batches ausführen sollen, und sendet sie einzeln an die MySQL-Datenbank.
Nur durch Einstellung des rewriteBatchedStandards-Parameters auf true führt der Treiber das SQL in Batchs aus
Diese Option gilt auch für INSERT/UPDATE/DELETE

Standardmäßig ignoriert der MySQL Jdbc-Treiber die executeBatch()-Anweisung, zerlegt eine Reihe von SQL-Anweisungen, die wir in Batches ausführen sollen, und sendet sie einzeln an die MySQL-Datenbank, was direkt zu niedriger Leistung führt.

Nur indem du den Parameter rewriteBatchedStatements auf true setzt, hilft dir der Treiber, SQL in großen Mengen auszuführen (jdbc:mysql://ip:port/db?)rewriteBatchedStatements=true)


allowMultiQueries

Erlaubnis zur Nutzung'; ' Trennt mehrere Abfragen (wahr/falsch) in einer Aussage. Der Standardwert ist "false", was die Methoden addBatch() und executeBatch() nicht beeinflusst, die von rewriteBatchStatements abhängen.

Wenn MySQL sich mit einer Datenbank verbindet, fügen Sie die Anweisung hinzu:allowMultiQueries=trueDie Rolle von ":

1. Man kann ein Semikolon nach der SQL-Anweisung tragen, um eine Ausführung mit mehreren Anweisungen zu erreichen.
2. Es kann Batch-Verarbeitung durchgeführt werden und mehrere SQL-Anweisungen gleichzeitig ausgegeben werden.


sslMode

Standardmäßig sind Netzwerkverbindungen SSL-verschlüsselt; Diese Eigenschaft ermöglicht es Ihnen, die sichere Verbindung auszuschalten oder eine andere Sicherheitsstufe auszuwählen. Folgende Werte sind erlaubt: "DEAKTIVIERT" – eine unverschlüsselte Verbindung wird hergestellt; "BEVORZUGT" – (Standard) Wenn der Server verschlüsselte Verbindungen aktiviert, wird eine verschlüsselte Verbindung hergestellt, ansonsten fällt sie auf eine unverschlüsselte Verbindung zurück; "ERFORDERLICH" – Eine sichere Verbindung herstellen, wenn der Server sie aktiviert hat, andernfalls schlägt sie fehl; "VERIFY_CA" – Ähnlich wie "REQUIRED", validiert jedoch zusätzlich das Server-TLS-Zertifikat gegen das konfigurierte Certificate Authority (CA)-Zertifikat; "VERIFY_IDENTITY" – wie "VERIFY_CA",

Dieses Attribut ersetzt die veralteten alten Attribute "useSSL", "requireSSL" und "verifyServerCertificate", die weiterhin akzeptiert, aber in den Wert "sslMode" umgewandelt werden, wenn "sslMode" nicht explizit gesetzt ist: "useSSL=false" wird in "sslMode=disabled" umgewandelt; {"useSSL=true", "requireSSL=false", "verifyServerCertificate=false"} wird als "sslMode=PREFERRED" übersetzt; {"useSSL=true", "requireSSL=true", "verifyServerCertificate=false"} wird als "sslMode=REQUIRED" übersetzt; {"useSSL=true" UND "verifyServerCertificate=true"} werden übersetzt als "Die Standardeinstellung für "sslMode" ist "BEVORZUGT", was den traditionellen Einstellungen "useSSL=true", "requireSSL=false" und "verifyServerCertificate=false" entspricht, die mit dem Connector übereinstimmen. Die Standardeinstellungen für J 8.0.12 und frühere Versionen unterscheiden sich in einigen Fällen. Anwendungen, die weiterhin die alten Attribute verwenden und auf deren alte Standardwerte angewiesen sind, sollten überprüft werden. Die Standardeinstellung für "sslMode" ist "BEVORZUGT", was den traditionellen Einstellungen "useSSL=true", "requireSSL=false" und "verifyServerCertificate=false" entspricht, was sich in einigen Fällen von der Standardeinstellung für Connector/J 8.0.12 und früher unterscheidet. Anwendungen, die weiterhin die alten Attribute verwenden und auf deren alte Standardwerte angewiesen sind, sollten überprüft werden. In manchen Fällen ist es 12 oder früher. Anwendungen, die weiterhin die alten Attribute verwenden und auf deren alte Standardwerte angewiesen sind, sollten überprüft werden. In manchen Fällen ist es 12 oder früher. Anwendungen, die weiterhin die alten Attribute verwenden und auf deren alte Standardwerte angewiesen sind, sollten überprüft werden.

Wenn "sslMode" explizit gesetzt ist, wird die alte Eigenschaft ignoriert. Wenn "sslMode" oder "useSSL" nicht explizit gesetzt ist, wird die Standardeinstellung "sslMode=PREFERRED" angewendet.

JDBC-Einstellungen zum Ausschalten sicherer Verbindungen:sslmode=deaktiviert




Vorhergehend:Wie man Dateien in Batches unter Linux umbenennt
Nächster:Wie man taiwanesische Nutzer daran hindert, sich zu registrieren, Informationen nach Belieben zu posten und um Rat beim Schreiben zu bitten.
 Vermieter| Veröffentlicht am 11.2.2022, 14:04:39 |
Spring-Datenbank-Verbindungsstring

Veröffentlicht am 13.2.2022, 16:31:57 |
Lerne zu lernen.
 Vermieter| Veröffentlicht am 25.04.2024, 08:38:32 |
C#-Ausnahme
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): Die Authentifizierungsmethode 'caching_sha2_password' fehlgeschlagen. Entweder verwenden Sie eine sichere Verbindung, geben Sie den RSA-öffentlichen Schlüssel des Servers mit ServerRSAPublicKeyFile an oder setzen Sie AllowPublicKeyRetrieval=True.


Lösung

Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com