Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 13228|Odpowiedź: 3

[Źródło] Java JDBC umożliwia rewriteBatchedStatements, zezwala na wyszukiwanie PublicKey...

[Skopiuj link]
Opublikowano 2022-2-11 o 13:59:18 | | |
Zoptymalizowano wydajność konfiguracji rewriteBatchedStatements, allowPublicKeyRetrieval, allowMultiQuery oraz sslMode w Java JDBC.

Dokumentacja wszystkich właściwości konfiguracji jdbc:Logowanie do linku jest widoczne.

Recenzja:

.NET/C# Optymalizacja wydajności SslMode dla baz danych MySQL
https://www.itsvse.com/thread-9956-1-1.html

permitowPublicKeyRetrieval

Podczas korzystania z MySQL 8.0, po ponownym uruchomieniu aplikacji, zostajesz poproszony o com.mysql.jdbc.exceptions.jdbc4.MySQL OnTransientConnectionException: Pobieranie klucza publicznego jest niedozwolone

Najprostszym obejściem jest dodanie go po połączeniuallowPublicKeyRetrieval=true

Jeśli użytkownik korzysta z uwierzytelniania sha256_password, hasło musi być chronione podczas transportu za pomocą protokołu TLS, ale jeśli klucz publiczny RSA nie jest dostępny, można użyć klucza publicznego dostarczonego przez serwer; Publiczny klucz RSA serwera można określić w połączeniu za pomocą ServerRSAPublicKeyFile lub parametru AllowPublicKeyRetrieval=True, aby umożliwić klientowi uzyskanie klucza publicznego z serwera; Należy jednak zauważyć, że AllowPublicKeyRetrieval=True może powodować uzyskiwanie haseł w formacie jawnym przez złośliwe agenty poprzez ataki man-in-the-middle (MITM), dlatego jest domyślnie wyłączone i musi być wyraźnie włączone.



rewriteBatchedStatements

Aby osiągnąć wysokowydajne wstawianie wsadowe, dodając parametr rewriteBatchedStatements do adresu URL połączenia JDBC w MySQL i zapewniając, że wersja sterownika 5.1.13 lub nowsza jest gwarantowana. Domyślnie sterownik JDBC MySQL ignoruje instrukcje executeBatch(), dzieli zestaw instrukcji SQL, które spodziewamy się wykonać w partiach, i wysyła je do bazy MySQL pojedynczo.
Tylko ustawiając parametr rewriteBatchedStatements na true, sterownik wykona SQL w partiach
Ta opcja jest również ważna dla INSERT/UPDATE/DELETE

Domyślnie sterownik MySQL Jdbc ignoruje polecenie executeBatch(), rozdziela zestaw instrukcji SQL, które spodziewamy się wykonać w partiach, i wysyła je do bazy MySQL pojedynczo, co bezpośrednio powoduje niską wydajność.

Tylko ustawiając parametr rewriteBatchedStatements na true, sterownik pomoże ci wykonać SQL hurtowo (jdbc:mysql://ip:port/db?)rewriteBatchedStatements=true)


permitMultiQueries

Zgoda na użycie'; ' Rozdziela wiele zapytań (prawda/fałsz) w jednym zdaniu. Domyślna wartość to "false", co nie wpływa na metody addBatch() i executeBatch(), które zależą od rewriteBatchStatements.

Gdy MySQL łączy się z bazą danych, dodaj zdanie:"allowMultiQueries=trueRola ":

1. Możesz przenosić średnik po instrukcji SQL, aby wykonać wiele instrukcji.
2. Można wykonywać przetwarzanie wsadowe oraz jednocześnie wydać wiele pociągów SQL.


sslMode

Domyślnie połączenia sieciowe są szyfrowane przez SSL; Ta funkcja pozwala wyłączyć bezpieczne połączenie lub wybrać inny poziom zabezpieczeń. Dozwolone są następujące wartości: "DISABLED" – nawiązywane jest nieszyfrowane połączenie; "PREFERRED" - (domyślnie) Jeśli serwer umożliwia szyfrowane połączenia, nawiązywane jest szyfrowane połączenie, w przeciwnym razie wraca ono do nieszyfrowanego połączenia; "WYMAGANE" – Nawiązanie bezpiecznego połączenia, jeśli serwer je włączył, w przeciwnym razie nie dochodzi do awarii; "VERIFY_CA" – Podobne do "WYMAGANE", ale dodatkowo waliduje certyfikat TLS serwera względem certyfikatu skonfigurowanego urzędu certyfikacyjnego (CA); "VERIFY_IDENTITY" – jak "VERIFY_CA",

Ten atrybut zastępuje przestarzałe atrybuty "useSSL", "requireSSL" i "verifyServerCertificate", które są nadal akceptowane, ale przekształcane na wartość "sslMode", jeśli "sslMode" nie jest ustawione wprost: "useSSL=false" jest konwertowane na "sslMode=disabled"; {"useSSL=true", "requireSSL=false", "verifyServerCertificate=false"} jest tłumaczone jako "sslMode=PREFERRED"; {"useSSL=true", "requireSSL=true", "verifyServerCertificate=false"} jest tłumaczone jako "sslMode=REQUIRED"; {"useSSL=true" Oraz "verifyServerCertificate=true"} tłumaczy się jako "Domyślne ustawienie dla "sslMode" to "PREFERRED", co jest równoważne tradycyjnym ustawieniom "useSSL=true", "requireSSL=false" oraz "verifyServerCertificate=false", które są takie same jak w Connector/ Domyślne ustawienia dla wersji J 8.0.12 i wcześniejszych są w niektórych przypadkach inne. Aplikacje, które nadal korzystają ze starych atrybutów i polegają na swoich domyślnych ustawieniach, powinny zostać przejrzane. Domyślne ustawienie dla "sslMode" to "PREFERRED", które jest równoważne tradycyjnym ustawieniom "useSSL=true", "requireSSL=false" oraz "verifyServerCertificate=false", co różni się od domyślnego ustawienia dla Connector/J 8.0.12 i wcześniejszych w niektórych przypadkach. Aplikacje, które nadal korzystają ze starych atrybutów i polegają na swoich domyślnych ustawieniach, powinny zostać przejrzane. W niektórych przypadkach jest to 12 lat lub wcześniej. Aplikacje, które nadal korzystają ze starych atrybutów i polegają na swoich domyślnych ustawieniach, powinny zostać przejrzane. W niektórych przypadkach jest to 12 lat lub wcześniej. Aplikacje, które nadal korzystają ze starych atrybutów i polegają na swoich domyślnych ustawieniach, powinny zostać przejrzane.

Jeśli "sslMode" jest ustawione jawnie, stara właściwość jest ignorowana. Jeśli "sslMode" lub "useSSL" nie jest ustawione jawnie, stosuje się domyślne ustawienie "sslMode=PREFERRED".

Ustawienia JDBC do wyłączania bezpiecznych połączeń:sslmode=wyłączony




Poprzedni:Jak zmieniać nazwy plików w partiach w Linuksie
Następny:Jak ograniczyć rejestrację tajwańskich użytkowników, publikowanie informacji według własnej woli i prośba o porady, jak pisać.
 Ziemianin| Opublikowano 2022-2-11 o 14:04:39 |
Łańcuch połączeń bazy danych Spring

Opublikowano 2022-2-13 16:31:57 |
Ucz się uczyć się.
 Ziemianin| Opublikowano 2024-4-25 08:38:32 |
Wyjątek 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 uwierzytelniania 'caching_sha2_password' zawiodła. Możesz użyć bezpiecznego połączenia, określić klucz publiczny RSA serwera za pomocą ServerRSAPublicKeyFile lub ustawić AllowPublicKeyRetrieval=True.


rozwiązanie

Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com