Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 13228|Răspunde: 3

[Sursă] RewriteBatchedStatements de Java JDBC, allowPublicKeyRetrieval...

[Copiază linkul]
Postat la 2022-2-11 13:59:18 | | |
A optimizat performanța configurațiilor rewriteBatchedStatements, allowPublicKeyRetrieval, allowMultiQueries și sslMode ale Java JDBC.

Documentația tuturor proprietăților de configurare jdbc:Autentificarea cu hyperlink este vizibilă.

Recenzie:

.NET/C# Optimizat performanța SslMode pentru bazele de date MySQL
https://www.itsvse.com/thread-9956-1-1.html

allowPublicKeyRetrieval

Când folosești MySQL 8.0, după repornirea aplicației, ți se cere com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Recuperarea cheii publice nu este permisă

Cea mai simplă soluție este să o adaugi după conexiuneallowPublicKeyRetrieval=true

Dacă utilizatorul folosește sha256_password autentificare, parola trebuie protejată în tranzit folosind protocolul TLS, dar dacă cheia publică RSA nu este disponibilă, cheia publică furnizată de server poate fi folosită; Cheia publică RSA a serverului poate fi specificată în conexiune prin ServerRSAPublicKeyFile sau parametrul AllowPublicKeyRetrieval=True pentru a permite clientului să obțină cheia publică de la server; Totuși, trebuie menționat că AllowPublicKeyRetrieval=True poate determina agenții rău intenționați să obțină parole în text clar prin atacuri man-in-the-middle (MITM), astfel că este dezactivat implicit și trebuie activat explicit.



rewriteBatchedStatements

Pentru a realiza inserarea batch de înaltă performanță, adăugând parametrul rewriteBatchedStatements la URL-ul conexiunii JDBC în MySQL și asigurându-se că versiunea driverului 5.1.13 sau ulterioară este garantată. Implicit, driverul MySQL JDBC ignoră instrucțiunea executeBatch(), împarte un set de instrucțiuni SQL pe care ne așteptăm să le executăm în loturi și le trimite în baza de date MySQL una câte una.
Doar setând parametrul rewriteBatchedStatements pe true driverul va executa SQL-ul în loturi
Această opțiune este valabilă și pentru INSERT/UPDATE/DELETE

În mod implicit, driverul MySQL Jdbc ignoră instrucțiunea executeBatch(), descompune un set de instrucțiuni SQL pe care ne așteptăm să le executăm în loturi și le trimite una câte una către baza de date MySQL, ceea ce duce direct la performanță scăzută.

Doar setând parametrul rewriteBatchedStatements pe true, driverul te va ajuta să execuți SQL în masă (jdbc:mysql://ip:port/db?)rewriteBatchedStatements=true)


allowMultiQueries

Permisiunea de utilizare'; Separă mai multe interogări (adevărat/fals) într-o singură afirmație. Valoarea implicită este "false", ceea ce nu afectează metodele addBatch() și executeBatch(), care depind de rewriteBatchStatements.

Când MySQL se conectează la o bază de date, adaugă afirmația:allowMultiQueries=trueRolul lui ":

1. Poți purta un punct și virgulă după instrucțiunea SQL pentru a realiza execuția pe mai multe instrucțiuni.
2. Procesarea în loturi poate fi efectuată și mai multe instrucțiuni SQL pot fi emise simultan.


sslMode

În mod implicit, conexiunile de rețea sunt criptate SSL; Această proprietate îți permite să dezactivezi conexiunea securizată sau să selectezi un alt nivel de securitate. Următoarele valori sunt permise: "DEZACTIVAT" - se stabilește o conexiune necriptată; "PREFERAT" - (implicit) Dacă serverul permite conexiuni criptate, se stabilește o conexiune criptată, altfel revine la o conexiune necriptată; "OBLIGATORIU" - Stabilirea unei conexiuni securizate dacă serverul a activat-o, altfel eșuează; "VERIFY_CA" - Similar cu "REQUIRED", dar validează suplimentar certificatul TLS al serverului față de certificatul autorității de certificare (CA) configurat; "VERIFY_IDENTITY" - ca "VERIFY_CA",

Acest atribut înlocuiește vechile atribute învechite "useSSL", "requireSSL" și "verifyServerCertificate", care sunt încă acceptate, dar convertite în valoarea "sslMode" dacă "sslMode" nu este setat explicit: "useSSL=false" este convertit în "sslMode=disabled"; {"useSSL=true", "requireSSL=false", "verifyServerCertificate=false"} se traduce ca "sslMode=PREFERRED"; {"useSSL=true", "requireSSL=true", "verifyServerCertificate=false"} se traduce ca "sslMode=REQUIRED"; {"useSSL=true" ȘI "verifyServerCertificate=true"} se traduce ca "Setarea implicită pentru "sslMode" este "PREFERRED", care este echivalentă cu setările tradiționale "useSSL=true", "requireSSL=false" și "verifyServerCertificate=false", care sunt aceleași cu Connector/ Setările implicite pentru J 8.0.12 și versiunile anterioare sunt diferite în unele cazuri. Aplicațiile care continuă să folosească atributele vechi și se bazează pe vechile lor valori implicite ar trebui revizuite. Setarea implicită pentru "sslMode" este "PREFERRED", care este echivalentă cu setările tradiționale "useSSL=true", "requireSSL=false" și "verifyServerCertificate=false", care diferă de setarea implicită pentru Connector/ J 8.0.12 și anterioare în unele cazuri. Aplicațiile care continuă să folosească atributele vechi și se bazează pe vechile lor valori implicite ar trebui revizuite. În unele cazuri este 12 sau mai devreme. Aplicațiile care continuă să folosească atributele vechi și se bazează pe vechile lor valori implicite ar trebui revizuite. În unele cazuri este 12 sau mai devreme. Aplicațiile care continuă să folosească atributele vechi și se bazează pe vechile lor valori implicite ar trebui revizuite.

Dacă "sslMode" este setat explicit, proprietatea veche este ignorată. Dacă "sslMode" sau "useSSL" nu sunt setate explicit, se aplică setarea implicită "sslMode=PREFERRED".

Setări JDBC pentru dezactivarea conexiunilor securizate:sslmode=dezactivat




Precedent:Cum să redenumești fișiere în loturi în Linux
Următor:Cum să restricționezi utilizatorii taiwanezi să se înregistreze, să postezi informații după bunul plac și să ceri sfaturi despre cum să scrii.
 Proprietarul| Postat la 2022-2-11 14:04:39 |
Șirul de conexiune la baza de date cu arc

Postat la 2022-2-13 16:31:57 |
Învață să înveți.
 Proprietarul| Postat la 25-04-2024 08:38:32 |
Excepție C#
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): Metoda de autentificare 'caching_sha2_password' a eșuat. Fie folosești o conexiune securizată, fie specifici cheia publică RSA a serverului cu ServerRSAPublicKeyFile, fie setezi AllowPublicKeyRetrieval=True.


soluție

Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com